import { useState, useEffect } from 'react'; export default function ResumeSearch() { const [searchQuery, setSearchQuery] = useState(''); const [debouncedQuery, setDebouncedQuery] = useState(''); // Debounce search input to avoid too many updates useEffect(() => { const timer = setTimeout(() => { setDebouncedQuery(searchQuery); }, 300); return () => { clearTimeout(timer); }; }, [searchQuery]); // When debounced query changes, dispatch event to notify parent useEffect(() => { dispatchSearchChange(); }, [debouncedQuery]); const dispatchSearchChange = () => { window.dispatchEvent( new CustomEvent('resumeSearchChange', { detail: { searchQuery: debouncedQuery } }) ); }; const handleSearchChange = (e: React.ChangeEvent) => { setSearchQuery(e.target.value); }; const handleClearSearch = () => { setSearchQuery(''); }; return (
{searchQuery && ( )}
); }