UNPKG

@uiw/react-tabs-draggable

Version:
18 lines (16 loc) 441 B
import { useLayoutEffect, useMemo, useRef } from 'react'; type Fn<ARGS extends any[], R> = (...args: ARGS) => R; export const useEventCallback = <A extends any[], R>(fn: Fn<A, R>): Fn<A, R> => { let ref = useRef<Fn<A, R>>(fn); useLayoutEffect(() => { ref.current = fn; }); return useMemo( () => (...args: A): R => { const { current } = ref; return current && current(...args); }, [], ); };