🪝 AdduseSetSafeInterval hook
This commit is contained in:
22
src/tools/hooks/useSetSafeInterval.tsx
Normal file
22
src/tools/hooks/useSetSafeInterval.tsx
Normal 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user