diff --git a/src/components/search-dialog.tsx b/src/components/search-dialog.tsx index 1298bba..13630c5 100644 --- a/src/components/search-dialog.tsx +++ b/src/components/search-dialog.tsx @@ -182,7 +182,10 @@ export function SearchDialog({ usePreventScroll(); const [query, setQuery] = useState(defaultValue || ""); - const [results, setResults] = useState([]); + const [results, setResults] = useState<{ + results: SearchResult[]; + query: string; + }>({ results: [], query: "" }); // Fetch the search index using React Query const { @@ -202,16 +205,20 @@ export function SearchDialog({ // Perform search when query changes const performSearch = useCallback( (searchQuery: string) => { - if (!searchEngine || !searchQuery.trim()) { - setResults([]); + if (!searchEngine || searchQuery === results.query) { + return; + } else if (!searchQuery.trim()) { + setResults({ results: [], query: searchQuery }); return; } const searchResults = searchEngine.search(searchQuery, 10); - setResults(searchResults); + console.log("searchResults", searchResults); + setResults({ results: searchResults, query: searchQuery }); }, - [searchEngine] + [searchEngine, results.query] ); + console.log("results", results.results); // Debounce search input useEffect(() => { @@ -277,12 +284,12 @@ export function SearchDialog({
Error loading search index
- ) : results.length === 0 ? ( + ) : results.results.length === 0 ? ( {query.trim() ? "No articles found" : "Start typing to search"} ) : ( - results.map((result) => ( + results.results.map((result) => ( {