All files / libs/ext/react/hooks/src/lib/use-deep-memo useDeepMemo.ts

100% Statements 13/13
100% Branches 2/2
100% Functions 1/1
100% Lines 13/13

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 141x 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);
};