import { useEffect, useRef } from "react"; /** * * @kind 06-Lifecycle */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export const useDidChange = ( callback: VoidFunction | ((previousDependencies: T | null) => VoidFunction), dependencies: T, useOnMount = false, ) => { const prev = useRef(null); const mountRef = useRef(useOnMount); useEffect(() => { if (!mountRef.current) { mountRef.current = true; return; } return () => { callback(prev.current); prev.current = dependencies; }; // eslint-disable-next-line react-hooks/exhaustive-deps }, dependencies); };