Merge pull request #705 from palash-signoz/bug-useDebouncedFunction

bug: useDebounce function is fixed
This commit is contained in:
Ankit Nayan 2022-02-25 17:59:48 +05:30 committed by GitHub
commit bb0a7a956a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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