"use client"; import { useState, useEffect } from 'react'; /** * Хук для создания дебаунсинга значения * @param value Значение, которое нужно дебаунсить * @param delay Задержка в миллисекундах (по умолчанию 500мс) * @returns Дебаунсированное значение */ export function useDebounce(value: T, delay: number = 500): T { const [debouncedValue, setDebouncedValue] = useState(value); useEffect(() => { // Устанавливаем таймер, который обновит значение через delay мс const timer = setTimeout(() => { setDebouncedValue(value); }, delay); // Очищаем таймер при изменении value или при размонтировании return () => { clearTimeout(timer); }; }, [value, delay]); return debouncedValue; }