ai-toolkit / ui /src /hooks /useFromNull.tsx
rahul7star's picture
boilerplate
fcc02a2 verified
import { useEffect, useRef } from 'react';
export function useFromNull(effect: () => void | (() => void), deps: Array<any | null | undefined>) {
const prevDepsRef = useRef<(any | null | undefined)[]>([]);
useEffect(() => {
const shouldRun = deps.some((dep, i) => prevDepsRef.current[i] == null && dep != null);
if (shouldRun) {
const cleanup = effect();
prevDepsRef.current = deps;
return cleanup;
}
prevDepsRef.current = deps;
}, deps);
}