17 lines
481 B
TypeScript
17 lines
481 B
TypeScript
import { useRef, useEffect } from "react";
|
|
|
|
export function useTraceUpdate(props: { [s: string]: unknown } | ArrayLike<unknown>) {
|
|
const prev = useRef(props);
|
|
useEffect(() => {
|
|
const changedProps = Object.entries(props).reduce((ps, [k, v]) => {
|
|
// @ts-expect-error TODO: fix this
|
|
if (prev.current[k] !== v) {
|
|
// @ts-expect-error TODO: fix this
|
|
ps[k] = [prev.current[k], v];
|
|
}
|
|
return ps;
|
|
}, {});
|
|
prev.current = props;
|
|
});
|
|
}
|