import { useEffect, useState } from 'react'; /** The value once it stopped changing for the given time. */ export const useDebounced = (value: T, ms: number): T => { const [settled, setSettled] = useState(value); useEffect(() => { const timer = setTimeout(() => setSettled(value), ms); return () => clearTimeout(timer); }, [value, ms]); return settled; };