UNPKG

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