/
githubmirror
/
material-ui
Обзор
Документация
Войти
/
githubmirror
/
material-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
packages/mui-utils/src/useEventCallback/useEventCallback.ts
28 строк
851 B
Olivier Tassinari
[internal] Fix outdated links to the React repository
27 июн 2026, 23:42
Не верифицирован
27 июн 2026, 23:42
3ccff75
Код
Авторство
О чём код?
'use client'; import * as React from 'react'; import useEnhancedEffect from '../useEnhancedEffect'; /** * Inspired by https://github.com/react/react/issues/14099#issuecomment-440013892 * See RFC in https://github.com/reactjs/rfcs/pull/220 */ function useEventCallback<Fn extends (...args: any[]) => any = (...args: unknown[]) => unknown>( fn: Fn, ): Fn; function useEventCallback<Args extends unknown[], Return>( fn: (...args: Args) => Return, ): (...args: Args) => Return; function useEventCallback<Args extends unknown[], Return>( fn: (...args: Args) => Return, ): (...args: Args) => Return { const ref = React.useRef(fn); useEnhancedEffect(() => { ref.current = fn; }); return React.useRef((...args: Args) => // @ts-expect-error hide `this` (0, ref.current!)(...args), ).current; } export default useEventCallback;