UNPKG

@nex-ui/hooks

Version:

A collection of React Hooks for Nex UI components.

22 lines (18 loc) 624 B
'use strict'; var utils = require('@nex-ui/utils'); var react = require('react'); var useLatest = require('./useLatest.cjs'); var useUnmount = require('./useUnmount.cjs'); function useDebounce(fn, options) { const fnRef = useLatest.useLatest(fn); const wait = options?.wait ?? 1000; const debounced = react.useMemo(()=>utils.debounce((...args)=>{ return fnRef.current(...args); }, wait, options), // eslint-disable-next-line react-hooks/exhaustive-deps []); useUnmount.useUnmount(()=>{ debounced.cancel(); }); return debounced; } exports.useDebounce = useDebounce;