Openstatus www.openstatus.dev
at main 16 lines 432 B view raw
1import * as React from "react"; 2 3// consider using https://github.com/xnimorz/use-debounce 4export function useDebounce<T>(value: T, delay?: number): T { 5 const [debouncedValue, setDebouncedValue] = React.useState<T>(value); 6 7 React.useEffect(() => { 8 const timer = setTimeout(() => setDebouncedValue(value), delay ?? 500); 9 10 return () => { 11 clearTimeout(timer); 12 }; 13 }, [value, delay]); 14 15 return debouncedValue; 16}