18 lines
		
	
	
		
			462 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			462 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { useEffect, useRef } from "preact/hooks";
 | |
| 
 | |
| export function useTraceUpdate(props) {
 | |
|   const prev = useRef(props);
 | |
|   useEffect(() => {
 | |
|     const changedProps = Object.entries(props).reduce((ps, [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;
 | |
|   });
 | |
| }
 |