1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- "use strict";
-
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
-
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
- exports.__esModule = true;
- exports.default = void 0;
-
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
-
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
-
- var _react = _interopRequireWildcard(require("react"));
-
- var _classnames = _interopRequireDefault(require("classnames"));
-
- var _useTimeout = _interopRequireDefault(require("@restart/hooks/useTimeout"));
-
- var _Fade = _interopRequireDefault(require("./Fade"));
-
- var _ToastHeader = _interopRequireDefault(require("./ToastHeader"));
-
- var _ToastBody = _interopRequireDefault(require("./ToastBody"));
-
- var _ThemeProvider = require("./ThemeProvider");
-
- var _ToastContext = _interopRequireDefault(require("./ToastContext"));
-
- var defaultProps = {
- animation: true,
- autohide: false,
- delay: 3000,
- show: true,
- transition: _Fade.default
- };
-
- var Toast = _react.default.forwardRef(function (_ref, ref) {
- var bsPrefix = _ref.bsPrefix,
- className = _ref.className,
- children = _ref.children,
- Transition = _ref.transition,
- show = _ref.show,
- animation = _ref.animation,
- delay = _ref.delay,
- autohide = _ref.autohide,
- onClose = _ref.onClose,
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["bsPrefix", "className", "children", "transition", "show", "animation", "delay", "autohide", "onClose"]);
- bsPrefix = (0, _ThemeProvider.useBootstrapPrefix)('toast');
- var delayRef = (0, _react.useRef)(delay);
- var onCloseRef = (0, _react.useRef)(onClose);
- (0, _react.useEffect)(function () {
- // We use refs for these, because we don't want to restart the autohide
- // timer in case these values change.
- delayRef.current = delay;
- onCloseRef.current = onClose;
- }, [delay, onClose]);
- var autohideTimeout = (0, _useTimeout.default)();
- var autohideFunc = (0, _react.useCallback)(function () {
- if (!(autohide && show)) {
- return;
- }
-
- onCloseRef.current();
- }, [autohide, show]);
- autohideTimeout.set(autohideFunc, delayRef.current);
- var useAnimation = (0, _react.useMemo)(function () {
- return Transition && animation;
- }, [Transition, animation]);
-
- var toast = _react.default.createElement("div", (0, _extends2.default)({}, props, {
- ref: ref,
- className: (0, _classnames.default)(bsPrefix, className, !useAnimation && show && 'show'),
- role: "alert",
- "aria-live": "assertive",
- "aria-atomic": "true"
- }), children);
-
- var toastContext = {
- onClose: onClose
- };
- return _react.default.createElement(_ToastContext.default.Provider, {
- value: toastContext
- }, useAnimation ? _react.default.createElement(Transition, {
- in: show
- }, toast) : toast);
- });
-
- Toast.defaultProps = defaultProps;
- Toast.displayName = 'Toast';
- Toast.Body = _ToastBody.default;
- Toast.Header = _ToastHeader.default;
- var _default = Toast;
- exports.default = _default;
- module.exports = exports["default"];
|