opendash
Version:
open.DASH data visualization framework
23 lines (18 loc) • 485 B
text/typescript
import { useRef, useEffect } from "react";
export function useInterval(callback: () => void, timeout: number) {
const callbackRef = useRef(null);
useEffect(() => {
callbackRef.current = callback;
});
useEffect(() => {
function intervalCallback() {
if (callbackRef.current) {
callbackRef.current();
}
}
if (timeout) {
const id = setInterval(intervalCallback, timeout);
return () => clearInterval(id);
}
}, [timeout]);
}