UNPKG

3.29 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
9
10var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutPropertiesLoose"));
11
12var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inheritsLoose"));
13
14var _classnames = _interopRequireDefault(require("classnames"));
15
16var _propTypes = _interopRequireDefault(require("prop-types"));
17
18var _react = _interopRequireDefault(require("react"));
19
20var _bootstrapUtils = require("./utils/bootstrapUtils");
21
22var _createChainedFunction = _interopRequireDefault(require("./utils/createChainedFunction"));
23
24var _CloseButton = _interopRequireDefault(require("./CloseButton"));
25
26// TODO: `aria-label` should be `closeLabel`.
27var propTypes = {
28 /**
29 * Provides an accessible label for the close
30 * button. It is used for Assistive Technology when the label text is not
31 * readable.
32 */
33 closeLabel: _propTypes.default.string,
34
35 /**
36 * Specify whether the Component should contain a close button
37 */
38 closeButton: _propTypes.default.bool,
39
40 /**
41 * A Callback fired when the close button is clicked. If used directly inside
42 * a Modal component, the onHide will automatically be propagated up to the
43 * parent Modal `onHide`.
44 */
45 onHide: _propTypes.default.func
46};
47var defaultProps = {
48 closeLabel: 'Close',
49 closeButton: false
50};
51var contextTypes = {
52 $bs_modal: _propTypes.default.shape({
53 onHide: _propTypes.default.func
54 })
55};
56
57var ModalHeader =
58/*#__PURE__*/
59function (_React$Component) {
60 (0, _inheritsLoose2.default)(ModalHeader, _React$Component);
61
62 function ModalHeader() {
63 return _React$Component.apply(this, arguments) || this;
64 }
65
66 var _proto = ModalHeader.prototype;
67
68 _proto.render = function render() {
69 var _this$props = this.props,
70 closeLabel = _this$props.closeLabel,
71 closeButton = _this$props.closeButton,
72 onHide = _this$props.onHide,
73 className = _this$props.className,
74 children = _this$props.children,
75 props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["closeLabel", "closeButton", "onHide", "className", "children"]);
76 var modal = this.context.$bs_modal;
77
78 var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
79 bsProps = _splitBsProps[0],
80 elementProps = _splitBsProps[1];
81
82 var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
83 return _react.default.createElement("div", (0, _extends2.default)({}, elementProps, {
84 className: (0, _classnames.default)(className, classes)
85 }), closeButton && _react.default.createElement(_CloseButton.default, {
86 label: closeLabel,
87 onClick: (0, _createChainedFunction.default)(modal && modal.onHide, onHide)
88 }), children);
89 };
90
91 return ModalHeader;
92}(_react.default.Component);
93
94ModalHeader.propTypes = propTypes;
95ModalHeader.defaultProps = defaultProps;
96ModalHeader.contextTypes = contextTypes;
97
98var _default = (0, _bootstrapUtils.bsClass)('modal-header', ModalHeader);
99
100exports.default = _default;
101module.exports = exports["default"];
\No newline at end of file