UNPKG

@livelike/react-native

Version:

LiveLike React Native package

23 lines (19 loc) 495 B
import { useRef, useCallback } from 'react'; export type useDebounceArgs = { callback: (...args) => void; timer: number; }; export function useDebounce({ callback, timer }: useDebounceArgs) { const timeoutRef = useRef(null); return useCallback( (...args) => { if (timeoutRef.current) { clearTimeout(timeoutRef.current); } timeoutRef.current = setTimeout(() => { callback(...args); }, timer); }, [callback, timer, timeoutRef] ); }