1 | import _extends from "@babel/runtime/helpers/esm/extends";
|
2 | import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
3 | import _objectSpread from "@babel/runtime/helpers/esm/objectSpread";
|
4 | import React from 'react';
|
5 | import PropTypes from 'prop-types';
|
6 | import classNames from 'classnames';
|
7 | import { mapToCssModules, tagPropType } from './utils';
|
8 | import Fade from './Fade';
|
9 | var propTypes = {
|
10 | children: PropTypes.node,
|
11 | className: PropTypes.string,
|
12 | closeClassName: PropTypes.string,
|
13 | closeAriaLabel: PropTypes.string,
|
14 | cssModule: PropTypes.object,
|
15 | color: PropTypes.string,
|
16 | fade: PropTypes.bool,
|
17 | isOpen: PropTypes.bool,
|
18 | toggle: PropTypes.func,
|
19 | tag: tagPropType,
|
20 | transition: PropTypes.shape(Fade.propTypes),
|
21 | innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])
|
22 | };
|
23 | var defaultProps = {
|
24 | color: 'success',
|
25 | isOpen: true,
|
26 | tag: 'div',
|
27 | closeAriaLabel: 'Close',
|
28 | fade: true,
|
29 | transition: _objectSpread({}, Fade.defaultProps, {
|
30 | unmountOnExit: true
|
31 | })
|
32 | };
|
33 |
|
34 | function Alert(props) {
|
35 | var className = props.className,
|
36 | closeClassName = props.closeClassName,
|
37 | closeAriaLabel = props.closeAriaLabel,
|
38 | cssModule = props.cssModule,
|
39 | Tag = props.tag,
|
40 | color = props.color,
|
41 | isOpen = props.isOpen,
|
42 | toggle = props.toggle,
|
43 | children = props.children,
|
44 | transition = props.transition,
|
45 | fade = props.fade,
|
46 | innerRef = props.innerRef,
|
47 | attributes = _objectWithoutPropertiesLoose(props, ["className", "closeClassName", "closeAriaLabel", "cssModule", "tag", "color", "isOpen", "toggle", "children", "transition", "fade", "innerRef"]);
|
48 |
|
49 | var classes = mapToCssModules(classNames(className, 'alert', "alert-" + color, {
|
50 | 'alert-dismissible': toggle
|
51 | }), cssModule);
|
52 | var closeClasses = mapToCssModules(classNames('close', closeClassName), cssModule);
|
53 |
|
54 | var alertTransition = _objectSpread({}, Fade.defaultProps, transition, {
|
55 | baseClass: fade ? transition.baseClass : '',
|
56 | timeout: fade ? transition.timeout : 0
|
57 | });
|
58 |
|
59 | return React.createElement(Fade, _extends({}, attributes, alertTransition, {
|
60 | tag: Tag,
|
61 | className: classes,
|
62 | in: isOpen,
|
63 | role: "alert",
|
64 | innerRef: innerRef
|
65 | }), toggle ? React.createElement("button", {
|
66 | type: "button",
|
67 | className: closeClasses,
|
68 | "aria-label": closeAriaLabel,
|
69 | onClick: toggle
|
70 | }, React.createElement("span", {
|
71 | "aria-hidden": "true"
|
72 | }, "\xD7")) : null, children);
|
73 | }
|
74 |
|
75 | Alert.propTypes = propTypes;
|
76 | Alert.defaultProps = defaultProps;
|
77 | export default Alert; |
\ | No newline at end of file |