import { useEffect, useState } from 'react' const DEFAULT_DELAY_MS = 200 export function useDebouncedSearchTerm(term: string, delayMs = DEFAULT_DELAY_MS) { const [debouncedTerm, setDebouncedTerm] = useState('') const trimmedTerm = term.trim() useEffect(() => { if (trimmedTerm.length === 0) { setDebouncedTerm('') return } const timer = setTimeout(() => setDebouncedTerm(trimmedTerm), delayMs) return () => clearTimeout(timer) }, [trimmedTerm, delayMs]) return debouncedTerm }