import { useRef, useMemo } from 'react'; export function useLazy(init: () => T, deps: any[]): () => T | null { const valueRef = useRef(null); return useMemo(() => { valueRef.current = null; return () => { if (!valueRef.current) { valueRef.current = init(); } return valueRef.current; }; // eslint-disable-next-line react-hooks/exhaustive-deps }, deps); }