Files
headlessui/packages/@headlessui-react/src/hooks/use-event.ts
T
2023-02-06 12:30:30 +01:00

14 lines
435 B
TypeScript

import React from 'react'
import { useLatestValue } from './use-latest-value'
export let useEvent =
// TODO: Add React.useEvent ?? once the useEvent hook is available
function useEvent<
F extends (...args: any[]) => any,
P extends any[] = Parameters<F>,
R = ReturnType<F>
>(cb: (...args: P) => R) {
let cache = useLatestValue(cb)
return React.useCallback((...args: P) => cache.current(...args), [cache])
}