UNPKG

@wix/design-system

Version:

@wix/design-system

37 lines (36 loc) 1.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.useToastTimeout = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _useStableCallback = require("./useStableCallback"); var _pauseableTimeout = require("../utils/pauseableTimeout"); var _ToastContext = require("../../Toast/ToastContext"); var noop = () => {}; var useToastTimeout = exports.useToastTimeout = function useToastTimeout(delay) { var _useContext$hidden, _useContext; var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop; var paused = (_useContext$hidden = (_useContext = (0, _react.useContext)(_ToastContext.ToastContext)) == null ? void 0 : _useContext.hidden) !== null && _useContext$hidden !== void 0 ? _useContext$hidden : false; var stableCallback = (0, _useStableCallback.useStableCallback)(callback); var _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2.default)(_useState, 2), timeoutState = _useState2[0], setTimeoutState = _useState2[1]; (0, _react.useEffect)(() => { if (delay === undefined) { return; } var timeout = (0, _pauseableTimeout.createTimeout)(stableCallback, delay); setTimeoutState(timeout); return timeout.clear; }, [delay, stableCallback]); (0, _react.useEffect)(() => { if (paused) { timeoutState == null || timeoutState.pause(); } else { timeoutState == null || timeoutState.resume(); } }, [timeoutState, paused]); }; //# sourceMappingURL=useToastTimeout.js.map