UNPKG

1.47 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3import classNames from 'classnames';
4import React, { useContext } from 'react';
5import useEventCallback from '@restart/hooks/useEventCallback';
6import { useBootstrapPrefix } from './ThemeProvider';
7import CloseButton from './CloseButton';
8import ModalContext from './ModalContext';
9var defaultProps = {
10 closeLabel: 'Close',
11 closeButton: false
12};
13var ModalHeader = React.forwardRef(function (_ref, ref) {
14 var bsPrefix = _ref.bsPrefix,
15 closeLabel = _ref.closeLabel,
16 closeButton = _ref.closeButton,
17 onHide = _ref.onHide,
18 className = _ref.className,
19 children = _ref.children,
20 props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "closeLabel", "closeButton", "onHide", "className", "children"]);
21
22 bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');
23 var context = useContext(ModalContext);
24 var handleClick = useEventCallback(function () {
25 if (context) context.onHide();
26 if (onHide) onHide();
27 });
28 return React.createElement("div", _extends({
29 ref: ref
30 }, props, {
31 className: classNames(className, bsPrefix)
32 }), children, closeButton && React.createElement(CloseButton, {
33 label: closeLabel,
34 onClick: handleClick
35 }));
36});
37ModalHeader.displayName = 'ModalHeader';
38ModalHeader.defaultProps = defaultProps;
39export default ModalHeader;
\No newline at end of file