Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 1x 1x 1x 1x 4x 4x 4x 1x 1x 4x 4x 4x 4x | import { isEqual } from 'lodash-es';
import { useMemo, useRef, type DependencyList } from 'react';
export const useDeepMemo = <TData>(factory: () => TData, deps: DependencyList): TData => {
const dependenciesRef = useRef<DependencyList>(deps);
if (!isEqual(dependenciesRef.current, deps)) {
dependenciesRef.current = deps;
}
// eslint-disable-next-line react-hooks/exhaustive-deps -- factory is not a dependency.
return useMemo(factory, dependenciesRef.current);
};
|