🪝 AdduseSetSafeInterval hook

This commit is contained in:
ajnart
2022-06-06 15:02:41 +02:00
parent 39674fc769
commit bbb912479b

View File

@@ -0,0 +1,22 @@
import { useEffect, useRef } from 'react';
export function useSetSafeInterval() {
const timers = useRef<NodeJS.Timer[]>([]);
function setSafeInterval(callback: () => void, delay: number) {
const newInterval = setInterval(callback, delay);
timers.current.push(newInterval);
return newInterval;
}
useEffect(
() => () => {
timers.current.forEach((t) => {
clearInterval(t);
});
},
[]
);
return setSafeInterval;
}