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.
 
 
 
 

74 lines
2.5 KiB

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