@base-ui-components/react
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
20 lines (17 loc) • 514 B
JavaScript
'use client';
import * as React from 'react';
import { useEnhancedEffect } from './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 };