Repository URL to install this package:
|
Version:
0.0.0 ▾
|
import { useEffect } from 'react';
import { usePrevious } from './usePrevious';
export const useEffectDebugger = (effectHook, dependencies, dependencyNames = []) => {
const previousDeps = usePrevious(dependencies, []);
const changedDeps = dependencies.reduce((accum, dependency, index) => {
if (dependency !== previousDeps[index]) {
const keyName = dependencyNames[index] || index;
return Object.assign(Object.assign({}, accum), { [keyName]: {
before: previousDeps[index],
after: dependency,
} });
}
return accum;
}, {});
if (Object.keys(changedDeps).length) {
console.log('[use-effect-debugger] ', changedDeps);
}
useEffect(effectHook, dependencies);
};