1 | import * as React from 'react';
|
2 | const useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
|
3 | /**
|
4 | * https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
5 | *
|
6 | * @param {function} fn
|
7 | */
|
8 |
|
9 | export default function useEventCallback(fn) {
|
10 | const ref = React.useRef(fn);
|
11 | useEnhancedEffect(() => {
|
12 | ref.current = fn;
|
13 | });
|
14 | return React.useCallback((...args) => (0, ref.current)(...args), []);
|
15 | } |
\ | No newline at end of file |