UNPKG

3.4 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
12var _classnames = _interopRequireDefault(require("classnames"));
13
14var _react = _interopRequireDefault(require("react"));
15
16var _uncontrollable = require("uncontrollable");
17
18var _useEventCallback = _interopRequireDefault(require("@restart/hooks/useEventCallback"));
19
20var _ThemeProvider = require("./ThemeProvider");
21
22var _Fade = _interopRequireDefault(require("./Fade"));
23
24var _CloseButton = _interopRequireDefault(require("./CloseButton"));
25
26var _divWithClassName = _interopRequireDefault(require("./divWithClassName"));
27
28var _createWithBsPrefix = _interopRequireDefault(require("./createWithBsPrefix"));
29
30var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
31
32var _excluded = ["bsPrefix", "show", "closeLabel", "className", "children", "variant", "onClose", "dismissible", "transition"];
33var DivStyledAsH4 = (0, _divWithClassName.default)('h4');
34DivStyledAsH4.displayName = 'DivStyledAsH4';
35var AlertHeading = (0, _createWithBsPrefix.default)('alert-heading', {
36 Component: DivStyledAsH4
37});
38var AlertLink = (0, _createWithBsPrefix.default)('alert-link', {
39 Component: _SafeAnchor.default
40});
41var defaultProps = {
42 show: true,
43 transition: _Fade.default,
44 closeLabel: 'Close alert'
45};
46
47var Alert = /*#__PURE__*/_react.default.forwardRef(function (uncontrolledProps, ref) {
48 var _useUncontrolled = (0, _uncontrollable.useUncontrolled)(uncontrolledProps, {
49 show: 'onClose'
50 }),
51 bsPrefix = _useUncontrolled.bsPrefix,
52 show = _useUncontrolled.show,
53 closeLabel = _useUncontrolled.closeLabel,
54 className = _useUncontrolled.className,
55 children = _useUncontrolled.children,
56 variant = _useUncontrolled.variant,
57 onClose = _useUncontrolled.onClose,
58 dismissible = _useUncontrolled.dismissible,
59 transition = _useUncontrolled.transition,
60 props = (0, _objectWithoutPropertiesLoose2.default)(_useUncontrolled, _excluded);
61
62 var prefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'alert');
63 var handleClose = (0, _useEventCallback.default)(function (e) {
64 if (onClose) {
65 onClose(false, e);
66 }
67 });
68 var Transition = transition === true ? _Fade.default : transition;
69
70 var alert = /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
71 role: "alert"
72 }, !Transition ? props : undefined, {
73 ref: ref,
74 className: (0, _classnames.default)(className, prefix, variant && prefix + "-" + variant, dismissible && prefix + "-dismissible")
75 }), dismissible && /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
76 onClick: handleClose,
77 label: closeLabel
78 }), children);
79
80 if (!Transition) return show ? alert : null;
81 return /*#__PURE__*/_react.default.createElement(Transition, (0, _extends2.default)({
82 unmountOnExit: true
83 }, props, {
84 ref: undefined,
85 in: show
86 }), alert);
87});
88
89Alert.displayName = 'Alert';
90Alert.defaultProps = defaultProps;
91Alert.Link = AlertLink;
92Alert.Heading = AlertHeading;
93var _default = Alert;
94exports.default = _default;
95module.exports = exports["default"];
\No newline at end of file