UNPKG

@shopgate/engage

Version:
16 lines (15 loc) 491 B
import * as React from 'react'; const useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect; /** * https://github.com/facebook/react/issues/14099#issuecomment-440013892 * * @param {Function} fn function * @returns {Function} */ export default function useEventCallback(fn) { const ref = React.useRef(fn); useEnhancedEffect(() => { ref.current = fn; }); return React.useCallback((...args) => (0, ref.current).apply(void 0, args), []); }