UNPKG

@coreui/react

Version:

UI Components Library for React.js

41 lines (37 loc) 2.15 kB
'use strict'; var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js'); var React = require('react'); var PropTypes = require('prop-types'); var index = require('../../_virtual/index.js'); var CCloseButton = require('../close-button/CCloseButton.js'); var useForkedRef = require('../../hooks/useForkedRef.js'); require('@popperjs/core'); var props = require('../../props.js'); var Transition = require('../../node_modules/react-transition-group/esm/Transition.js'); var CAlert = React.forwardRef(function (_a, ref) { var children = _a.children, className = _a.className, _b = _a.color, color = _b === void 0 ? 'primary' : _b, dismissible = _a.dismissible, variant = _a.variant, _c = _a.visible, visible = _c === void 0 ? true : _c, onClose = _a.onClose, rest = tslib_es6.__rest(_a, ["children", "className", "color", "dismissible", "variant", "visible", "onClose"]); var alertRef = React.useRef(null); var forkedRef = useForkedRef.useForkedRef(ref, alertRef); var _d = React.useState(visible), _visible = _d[0], setVisible = _d[1]; React.useEffect(function () { setVisible(visible); }, [visible]); return (React.createElement(Transition.default, { in: _visible, mountOnEnter: true, nodeRef: alertRef, onExit: onClose, timeout: 150, unmountOnExit: true }, function (state) { return (React.createElement("div", tslib_es6.__assign({ className: index.default('alert', variant === 'solid' ? "bg-".concat(color, " text-white") : "alert-".concat(color), { 'alert-dismissible fade': dismissible, show: state === 'entered', }, className), role: "alert" }, rest, { ref: forkedRef }), children, dismissible && React.createElement(CCloseButton.CCloseButton, { onClick: function () { return setVisible(false); } }))); })); }); CAlert.propTypes = { children: PropTypes.node, className: PropTypes.string, color: props.colorPropType.isRequired, dismissible: PropTypes.bool, onClose: PropTypes.func, variant: PropTypes.string, visible: PropTypes.bool, }; CAlert.displayName = 'CAlert'; exports.CAlert = CAlert; //# sourceMappingURL=CAlert.js.map