Files
memorium/lib/hooks/useTraceProps.ts
2025-11-03 00:03:27 +01:00

21 lines
541 B
TypeScript

import { useEffect, useRef } from "preact/hooks";
export function useTraceUpdate(props: Record<string, unknown>) {
const prev = useRef(props);
useEffect(() => {
const changedProps = Object.entries(props).reduce(
(ps: Record<string, unknown>, [k, v]) => {
if (prev.current[k] !== v) {
ps[k] = [prev.current[k], v];
}
return ps;
},
{},
);
if (Object.keys(changedProps).length > 0) {
console.log("Changed props:", changedProps);
}
prev.current = props;
});
}