@modern-kit/react
Version:
31 lines (27 loc) • 776 B
JavaScript
;
var React = require('react');
const useManualTimeout = () => {
const timeoutIds = React.useRef([]);
const clearAll = React.useCallback(() => {
for (let i = 0; i < timeoutIds.current.length; i++) {
clearTimeout(timeoutIds.current[i]);
}
timeoutIds.current = [];
}, []);
const set = React.useCallback((callback, delay) => {
const id = window.setTimeout(() => {
timeoutIds.current = timeoutIds.current.filter(
(timeoutId) => timeoutId !== id
);
callback();
}, delay);
timeoutIds.current.push(id);
return id;
}, []);
React.useEffect(() => {
return clearAll;
}, [clearAll]);
return { set, clearAll };
};
exports.useManualTimeout = useManualTimeout;
//# sourceMappingURL=index.cjs.map