UNPKG

2.05 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3import React from 'react';
4import PropTypes from 'prop-types';
5import classNames from 'classnames';
6import { mapToCssModules, tagPropType } from './utils';
7var propTypes = {
8 tag: tagPropType,
9 wrapTag: tagPropType,
10 toggle: PropTypes.func,
11 className: PropTypes.string,
12 cssModule: PropTypes.object,
13 children: PropTypes.node,
14 closeAriaLabel: PropTypes.string,
15 charCode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
16 close: PropTypes.object
17};
18var defaultProps = {
19 tag: 'h5',
20 wrapTag: 'div',
21 closeAriaLabel: 'Close',
22 charCode: 215
23};
24
25var ModalHeader = function ModalHeader(props) {
26 var closeButton;
27
28 var className = props.className,
29 cssModule = props.cssModule,
30 children = props.children,
31 toggle = props.toggle,
32 Tag = props.tag,
33 WrapTag = props.wrapTag,
34 closeAriaLabel = props.closeAriaLabel,
35 charCode = props.charCode,
36 close = props.close,
37 attributes = _objectWithoutPropertiesLoose(props, ["className", "cssModule", "children", "toggle", "tag", "wrapTag", "closeAriaLabel", "charCode", "close"]);
38
39 var classes = mapToCssModules(classNames(className, 'modal-header'), cssModule);
40
41 if (!close && toggle) {
42 var closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;
43 closeButton = React.createElement("button", {
44 type: "button",
45 onClick: toggle,
46 className: mapToCssModules('close', cssModule),
47 "aria-label": closeAriaLabel
48 }, React.createElement("span", {
49 "aria-hidden": "true"
50 }, closeIcon));
51 }
52
53 return React.createElement(WrapTag, _extends({}, attributes, {
54 className: classes
55 }), React.createElement(Tag, {
56 className: mapToCssModules('modal-title', cssModule)
57 }, children), close || closeButton);
58};
59
60ModalHeader.propTypes = propTypes;
61ModalHeader.defaultProps = defaultProps;
62export default ModalHeader;
\No newline at end of file