import * as React from 'react'; import isEqual from 'lodash/isEqual'; // Inspired by https://github.com/kentcdodds/use-deep-compare-effect/blob/main/src/index.ts export function useDeepComparison(value: T) { const ref = React.useRef(value); const signalRef = React.useRef(0); if (!isEqual(value, ref.current)) { ref.current = value; signalRef.current += 1; } // eslint-disable-next-line react-hooks/exhaustive-deps return React.useMemo(() => ref.current, [signalRef.current]); }