A lexicon-driven AppView for ATProto.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829import * as React from "react";
import { useCallbackRef } from "@/hooks/use-callback-ref";
export function useDebouncedCallback<T extends (...args: never[]) => unknown>( callback: T, delay: number,) { const handleCallback = useCallbackRef(callback); const debounceTimerRef = React.useRef(0); React.useEffect( () => () => window.clearTimeout(debounceTimerRef.current), [], );
const setValue = React.useCallback( (...args: Parameters<T>) => { window.clearTimeout(debounceTimerRef.current); debounceTimerRef.current = window.setTimeout( () => handleCallback(...args), delay, ); }, [handleCallback, delay], );
return setValue;}