@darwish/hooks-core
Version:
25 lines (24 loc) • 671 B
JavaScript
import { useEffect, useRef } from "react";
export default function useInterval(callback, delay) {
var isClosed = useRef(false);
var intervalId = useRef(null);
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;
}