bug: useDebounce function is fixed

This commit is contained in:
Palash gupta 2022-02-10 22:00:35 +05:30
parent 9bf37b391e
commit 0d98a4fd0c
No known key found for this signature in database
GPG Key ID: 8FD05AE6F9150AD6

View File

@ -1,4 +1,4 @@
import { useCallback } from 'react';
import { useMemo, useRef } from 'react';
import debounce from 'lodash-es/debounce';
export interface DebouncedFunc<T extends (...args: any[]) => any> {
@ -26,9 +26,13 @@ const useDebouncedFn = <T extends (...args: any) => any>(
options: DebounceOptions = defaultOptions,
dependencies?: ReadonlyArray<any>,
): DebouncedFunc<T> => {
const debounced = debounce(fn, wait, options);
const fnRef = useRef(fn);
fnRef.current = fn;
return useCallback(debounced, dependencies || []);
return useMemo(
() => debounce(((...args) => fnRef.current(...args)) as T, wait, options),
[...(dependencies || [])],
);
};
export default useDebouncedFn;