gendesign/frontend/src/hooks/useDebouncedValue.ts
lekss361 ce2c48fff5
All checks were successful
Deploy / build-frontend (push) Successful in 2m0s
Deploy / deploy (push) Successful in 28s
Deploy / changes (push) Successful in 5s
Deploy / build-backend (push) Has been skipped
Deploy / build-worker (push) Has been skipped
feat(site-finder): debounce weight re-analyze (#201 Phase 2) (#215)
2026-05-16 12:54:51 +00:00

19 lines
573 B
TypeScript

"use client";
import { useEffect, useState } from "react";
/**
* Returns a debounced copy of `value` that only updates after `delayMs`
* milliseconds of silence. Useful to collapse rapid state changes before
* triggering expensive side-effects (e.g. API calls).
*/
export function useDebouncedValue<T>(value: T, delayMs: number = 300): T {
const [debounced, setDebounced] = useState(value);
useEffect(() => {
const handle = setTimeout(() => setDebounced(value), delayMs);
return () => clearTimeout(handle);
}, [value, delayMs]);
return debounced;
}