@darwish/hooks-core
Version:
28 lines (27 loc) • 792 B
JavaScript
;
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;