UNPKG

3.17 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 _createWithBsPrefix = _interopRequireDefault(require("./createWithBsPrefix"));
21
22var _divWithClassName = _interopRequireDefault(require("./divWithClassName"));
23
24var _ThemeProvider = require("./ThemeProvider");
25
26var _Fade = _interopRequireDefault(require("./Fade"));
27
28var _CloseButton = _interopRequireDefault(require("./CloseButton"));
29
30var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
31
32var defaultProps = {
33 show: true,
34 transition: _Fade.default,
35 closeLabel: 'Close alert'
36};
37var controllables = {
38 show: 'onClose'
39};
40
41var Alert = _react.default.forwardRef(function (uncontrolledProps, ref) {
42 var _useUncontrolled = (0, _uncontrollable.useUncontrolled)(uncontrolledProps, controllables),
43 bsPrefix = _useUncontrolled.bsPrefix,
44 show = _useUncontrolled.show,
45 closeLabel = _useUncontrolled.closeLabel,
46 className = _useUncontrolled.className,
47 children = _useUncontrolled.children,
48 variant = _useUncontrolled.variant,
49 onClose = _useUncontrolled.onClose,
50 dismissible = _useUncontrolled.dismissible,
51 Transition = _useUncontrolled.transition,
52 props = (0, _objectWithoutPropertiesLoose2.default)(_useUncontrolled, ["bsPrefix", "show", "closeLabel", "className", "children", "variant", "onClose", "dismissible", "transition"]);
53
54 var prefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'alert');
55 var handleClose = (0, _useEventCallback.default)(function (e) {
56 onClose(false, e);
57 });
58
59 var alert = _react.default.createElement("div", (0, _extends2.default)({
60 role: "alert"
61 }, Transition ? props : undefined, {
62 className: (0, _classnames.default)(className, prefix, variant && prefix + "-" + variant, dismissible && prefix + "-dismissible")
63 }), dismissible && _react.default.createElement(_CloseButton.default, {
64 onClick: handleClose,
65 label: closeLabel
66 }), children);
67
68 if (!Transition) return show ? alert : null;
69 return _react.default.createElement(Transition, (0, _extends2.default)({
70 unmountOnExit: true,
71 ref: ref
72 }, props, {
73 in: show
74 }), alert);
75});
76
77var DivStyledAsH4 = (0, _divWithClassName.default)('h4');
78DivStyledAsH4.displayName = 'DivStyledAsH4';
79Alert.displayName = 'Alert';
80Alert.defaultProps = defaultProps;
81Alert.Link = (0, _createWithBsPrefix.default)('alert-link', {
82 Component: _SafeAnchor.default
83});
84Alert.Heading = (0, _createWithBsPrefix.default)('alert-heading', {
85 Component: DivStyledAsH4
86});
87var _default = Alert;
88exports.default = _default;
89module.exports = exports["default"];
\No newline at end of file