优化
This commit is contained in:
17
client/shared/hooks/useDebounce.ts
Normal file
17
client/shared/hooks/useDebounce.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { DependencyList, useEffect } from 'react';
|
||||
import { useTimeoutFn } from './useTimeoutFn';
|
||||
|
||||
export type UseDebounceReturn = [() => boolean | null, () => void];
|
||||
|
||||
export function useDebounce(
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
fn: Function,
|
||||
ms = 0,
|
||||
deps: DependencyList = []
|
||||
): UseDebounceReturn {
|
||||
const [isReady, cancel, reset] = useTimeoutFn(fn, ms);
|
||||
|
||||
useEffect(reset, deps);
|
||||
|
||||
return [isReady, cancel];
|
||||
}
|
||||
Reference in New Issue
Block a user