UNPKG

@darwish/hooks-core

Version:

28 lines (27 loc) 792 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); function useInterval(callback, delay) { var isClosed = (0, react_1.useRef)(false); var intervalId = (0, react_1.useRef)(null); (0, react_1.useEffect)(function () { if (!isClosed.current) { clearCondition(); intervalId.current = setInterval(callback, delay); } return function () { clearCondition(); }; }, [delay]); var clear = function () { isClosed.current = true; clearCondition(); }; var clearCondition = function () { if (intervalId.current) { clearInterval(intervalId.current); } }; return clear; } exports.default = useInterval;