Files
bigcapital/packages/webapp/src/hooks/utils/useDeepCompareEffect.ts
2023-02-03 01:02:31 +02:00

26 lines
869 B
TypeScript

// @ts-nocheck
import { DependencyList, EffectCallback } from 'react';
import isDeepEqualReact from 'fast-deep-equal/react';
import { useCustomCompareEffect } from './useCustomCompareEffect';
const isPrimitive = (val: any) => val !== Object(val);
const useDeepCompareEffect = (effect: EffectCallback, deps: DependencyList) => {
if (process.env.NODE_ENV !== 'production') {
if (!(deps instanceof Array) || !deps.length) {
console.warn(
'`useDeepCompareEffect` should not be used with no dependencies. Use React.useEffect instead.',
);
}
if (deps.every(isPrimitive)) {
console.warn(
'`useDeepCompareEffect` should not be used with dependencies that are all primitive values. Use React.useEffect instead.',
);
}
}
useCustomCompareEffect(effect, deps, isDeepEqualReact);
};
export { useDeepCompareEffect };