mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-20 16:44:06 +01:00
14 lines
399 B
TypeScript
14 lines
399 B
TypeScript
import { useEffect, useRef, useState } from 'react';
|
|
|
|
export function useDebouncedValue<T extends string | number>(value: T, delay = 1000) {
|
|
const [state, setState] = useState<T>(value);
|
|
const timeout = useRef<NodeJS.Timeout>();
|
|
|
|
useEffect(() => {
|
|
clearTimeout(timeout.current ?? 0);
|
|
timeout.current = setTimeout(() => setState(value), delay);
|
|
}, [value, delay]);
|
|
|
|
return state;
|
|
}
|