import { useState, useEffect, useRef } from "react"; export function useThrottle(value: T, delay: number) { const [throttledValue, setThrottledValue] = useState(value); const time = useRef(0); useEffect(() => { const now = Date.now(); if (now > time.current + delay) { time.current = now; setThrottledValue(value); } else { const handler = setTimeout(() => { setThrottledValue(value); }, delay); return () => clearTimeout(handler); } }, [value, delay]); return throttledValue; }