import * as React from 'react' function useLatestValueRef(value: T) { const ref = React.useRef(value) React.useEffect(() => { ref.current = value }) return ref } export function useCallbackRef( callback: (...args: Args) => R, ): (...args: Args) => R { const ref = useLatestValueRef(callback) return React.useCallback((...args: Args) => ref.current(...args), [ref]) }