Files
Homarr/src/hooks/useSetSafeInterval.tsx
Manuel Ruwe c84d8b59fe ♻️ Refactor hooks
2022-12-23 17:29:58 +01:00

23 lines
469 B
TypeScript

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;
}