"use client" import { useState, useEffect } from "react" /** * Hook to debounce a value * @param value - Value to debounce * @param delay - Delay in milliseconds * @returns Debounced value */ export function useDebounce(value: T, delay = 500): T { const [debouncedValue, setDebouncedValue] = useState(value) useEffect(() => { // Set up timeout to update debounced value const timer = setTimeout(() => { setDebouncedValue(value) }, delay) // Clean up timeout on value change or unmount return () => { clearTimeout(timer) } }, [value, delay]) return debouncedValue }