UNPKG

3.86 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _classnames = require('classnames');
26
27var _classnames2 = _interopRequireDefault(_classnames);
28
29var _propTypes = require('prop-types');
30
31var _propTypes2 = _interopRequireDefault(_propTypes);
32
33var _react = require('react');
34
35var _react2 = _interopRequireDefault(_react);
36
37var _bootstrapUtils = require('./utils/bootstrapUtils');
38
39var _createChainedFunction = require('./utils/createChainedFunction');
40
41var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
42
43var _CloseButton = require('./CloseButton');
44
45var _CloseButton2 = _interopRequireDefault(_CloseButton);
46
47function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
49// TODO: `aria-label` should be `closeLabel`.
50
51var propTypes = {
52 /**
53 * Provides an accessible label for the close
54 * button. It is used for Assistive Technology when the label text is not
55 * readable.
56 */
57 closeLabel: _propTypes2.default.string,
58
59 /**
60 * Specify whether the Component should contain a close button
61 */
62 closeButton: _propTypes2.default.bool,
63
64 /**
65 * A Callback fired when the close button is clicked. If used directly inside
66 * a Modal component, the onHide will automatically be propagated up to the
67 * parent Modal `onHide`.
68 */
69 onHide: _propTypes2.default.func
70};
71
72var defaultProps = {
73 closeLabel: 'Close',
74 closeButton: false
75};
76
77var contextTypes = {
78 $bs_modal: _propTypes2.default.shape({
79 onHide: _propTypes2.default.func
80 })
81};
82
83var ModalHeader = function (_React$Component) {
84 (0, _inherits3.default)(ModalHeader, _React$Component);
85
86 function ModalHeader() {
87 (0, _classCallCheck3.default)(this, ModalHeader);
88 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
89 }
90
91 ModalHeader.prototype.render = function render() {
92 var _props = this.props,
93 closeLabel = _props.closeLabel,
94 closeButton = _props.closeButton,
95 onHide = _props.onHide,
96 className = _props.className,
97 children = _props.children,
98 props = (0, _objectWithoutProperties3.default)(_props, ['closeLabel', 'closeButton', 'onHide', 'className', 'children']);
99
100
101 var modal = this.context.$bs_modal;
102
103 var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
104 bsProps = _splitBsProps[0],
105 elementProps = _splitBsProps[1];
106
107 var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
108
109 return _react2.default.createElement(
110 'div',
111 (0, _extends3.default)({}, elementProps, { className: (0, _classnames2.default)(className, classes) }),
112 closeButton && _react2.default.createElement(_CloseButton2.default, {
113 label: closeLabel,
114 onClick: (0, _createChainedFunction2.default)(modal && modal.onHide, onHide)
115 }),
116 children
117 );
118 };
119
120 return ModalHeader;
121}(_react2.default.Component);
122
123ModalHeader.propTypes = propTypes;
124ModalHeader.defaultProps = defaultProps;
125ModalHeader.contextTypes = contextTypes;
126
127exports.default = (0, _bootstrapUtils.bsClass)('modal-header', ModalHeader);
128module.exports = exports['default'];
\No newline at end of file