nx/graph/shared/src/lib/use-interval-when.ts
MaxKless b5ffb85874
fix(graph): refresh pdv periodically in watch mode (#21218)
Co-authored-by: FrozenPandaz <jasonjean1993@gmail.com>
2024-01-18 17:59:10 -05:00

29 lines
571 B
TypeScript

import { useEffect, useRef } from 'react';
export const useIntervalWhen = (
callback: () => void,
delay: number,
condition: boolean
) => {
const savedCallback = useRef(() => {});
useEffect(() => {
if (condition) {
savedCallback.current = callback;
}
}, [callback, condition]);
useEffect(() => {
if (condition) {
const tick = () => {
savedCallback.current();
};
if (delay !== null) {
let id = setInterval(tick, delay);
return () => clearInterval(id);
}
}
}, [delay, condition]);
};