@lesnoypudge/utils-react
Version:
lesnoypudge's utils-react
29 lines (28 loc) • 762 B
JavaScript
import { shallowEqual } from "@lesnoypudge/utils";
import { useRef, useEffect } from "react";
const getDiff = (prev, next) => {
const diff = [...Object.keys(prev), ...Object.keys(next)].reduce((acc, cur) => {
if (next[cur] !== prev[cur]) {
acc[cur] = next[cur];
}
return acc;
}, {});
return diff;
};
const usePropsChange = (props) => {
const prevRef = useRef();
useEffect(() => {
if (prevRef.current === void 0) {
prevRef.current = props;
return;
}
const diff = getDiff(prevRef.current, props);
const isEqual = shallowEqual(prevRef.current, props);
!isEqual && console.log("diff is:", diff);
prevRef.current = props;
});
};
export {
usePropsChange
};
//# sourceMappingURL=usePropsChange.js.map