Openstatus
www.openstatus.dev
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}