import { useCallback, useLayoutEffect, useRef } from 'react'; function useEffectEventShim any>( cb: T, ): (...funcArgs: Parameters) => ReturnType { const cbRef = useRef(cb); useLayoutEffect(() => { cbRef.current = cb; }, [cb]); return useCallback((...args: Parameters) => { const callback = cbRef.current; return callback(...args); }, []); } export const useEffectEvent = useEffectEventShim;