UNPKG

@darwish/hooks-core

Version:

25 lines (24 loc) 671 B
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; }