import { useRef, useCallback } from 'react'; type Cb = (...a: any[]) => any; function useStableCallback( fn: T, ): T extends Cb ? (...args: Parameters) => ReturnType : () => void { const ref = useRef(fn); ref.current = fn; return useCallback((...args: any[]) => ref.current?.(...args), []); } export default useStableCallback;