TelegramPWA/src/hooks/schedulers/useInterval.ts
2024-03-08 12:48:40 +01:00

21 lines
508 B
TypeScript

import { useEffect } from '../../lib/teact/teact';
import useLastCallback from '../useLastCallback';
function useInterval(callback: NoneToVoidFunction, delay?: number, noFirst = false) {
const savedCallback = useLastCallback(callback);
useEffect(() => {
if (delay === undefined) {
return undefined;
}
const id = setInterval(() => savedCallback(), delay);
if (!noFirst) savedCallback();
return () => clearInterval(id);
}, [delay, noFirst]);
}
export default useInterval;