gendesign/tradein-mvp/frontend/src/lib/useDebouncedValue.ts
lekss361 f8112b420d
Some checks failed
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 11s
Deploy Trade-In / test (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / build-backend (push) Has been skipped
Deploy Trade-In / build-frontend (push) Has been cancelled
feat(tradein): страница «доля квартир дома в продаже» — % слайдер, адреса, карта (#2058)
2026-06-28 14:53:38 +00:00

15 lines
707 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { useEffect, useState } from "react";
/**
* Возвращает значение, обновляемое с задержкой `delayMs` после последнего
* изменения `value`. Используется чтобы не дёргать API на каждый keystroke /
* каждый тик слайдера. Таймер — не HTTP, поэтому useEffect здесь уместен.
*/
export function useDebouncedValue<T>(value: T, delayMs = 350): T {
const [debounced, setDebounced] = useState(value);
useEffect(() => {
const t = setTimeout(() => setDebounced(value), delayMs);
return () => clearTimeout(t);
}, [value, delayMs]);
return debounced;
}