UNPKG

@wix/design-system

Version:

@wix/design-system

32 lines (31 loc) 1.37 kB
"use strict"; exports.__esModule = true; exports.useToastTimeout = void 0; 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 [timeoutState, setTimeoutState] = (0, _react.useState)(); (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