You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

62 lines
2.0 KiB

  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import React from 'react';
  4. import PropTypes from 'prop-types';
  5. import classNames from 'classnames';
  6. import { mapToCssModules, tagPropType } from './utils';
  7. var propTypes = {
  8. tag: tagPropType,
  9. wrapTag: tagPropType,
  10. toggle: PropTypes.func,
  11. className: PropTypes.string,
  12. cssModule: PropTypes.object,
  13. children: PropTypes.node,
  14. closeAriaLabel: PropTypes.string,
  15. charCode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
  16. close: PropTypes.object
  17. };
  18. var defaultProps = {
  19. tag: 'h5',
  20. wrapTag: 'div',
  21. closeAriaLabel: 'Close',
  22. charCode: 215
  23. };
  24. var ModalHeader = function ModalHeader(props) {
  25. var closeButton;
  26. var className = props.className,
  27. cssModule = props.cssModule,
  28. children = props.children,
  29. toggle = props.toggle,
  30. Tag = props.tag,
  31. WrapTag = props.wrapTag,
  32. closeAriaLabel = props.closeAriaLabel,
  33. charCode = props.charCode,
  34. close = props.close,
  35. attributes = _objectWithoutPropertiesLoose(props, ["className", "cssModule", "children", "toggle", "tag", "wrapTag", "closeAriaLabel", "charCode", "close"]);
  36. var classes = mapToCssModules(classNames(className, 'modal-header'), cssModule);
  37. if (!close && toggle) {
  38. var closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;
  39. closeButton = React.createElement("button", {
  40. type: "button",
  41. onClick: toggle,
  42. className: mapToCssModules('close', cssModule),
  43. "aria-label": closeAriaLabel
  44. }, React.createElement("span", {
  45. "aria-hidden": "true"
  46. }, closeIcon));
  47. }
  48. return React.createElement(WrapTag, _extends({}, attributes, {
  49. className: classes
  50. }), React.createElement(Tag, {
  51. className: mapToCssModules('modal-title', cssModule)
  52. }, children), close || closeButton);
  53. };
  54. ModalHeader.propTypes = propTypes;
  55. ModalHeader.defaultProps = defaultProps;
  56. export default ModalHeader;