seti-ramesesv1
Version:
Reusable components and context for Next.js apps
21 lines (17 loc) • 572 B
JavaScript
import * as React from 'react';
import useEnhancedEffect from '../useEnhancedEffect/useEnhancedEffect.js';
/**
* Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892
* See RFC in https://github.com/reactjs/rfcs/pull/220
*/
function useEventCallback(fn) {
const ref = React.useRef(fn);
useEnhancedEffect(() => {
ref.current = fn;
});
return React.useRef((...args) =>
// @ts-expect-error hide `this`
(0, ref.current)(...args)).current;
}
export { useEventCallback as default };
//# sourceMappingURL=useEventCallback.js.map