@wix/design-system
Version:
@wix/design-system
32 lines (31 loc) • 1.37 kB
JavaScript
;
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