fix(search): ensure results are deduplicated

This commit is contained in:
Cory Dransfeldt 2025-06-18 11:16:08 -07:00
parent 5684b461fd
commit 55da3dc27b
No known key found for this signature in database
4 changed files with 31 additions and 23 deletions

View file

@ -117,6 +117,7 @@ description: Search through posts and other content on my site.
let total = 0;
let debounceTimeout;
let isLoading = false;
const resultIds = new Set();
const generateResultHTML = ({ title, url, description, type, tags, genre_name, genre_url, total_plays }) => `
<article class="search__results--result">
@ -215,13 +216,14 @@ description: Search through posts and other content on my site.
}
showLoadingMessage();
$loadMoreButton.style.display = "none";
const results = await loadSearchIndex(query, getSelectedSections(), 1);
currentResults = results;
currentPage = 1;
currentResults = results;
resultIds.clear();
results.forEach((r) => resultIds.add(r.id));
updateSearchResults(results);
};
@ -241,9 +243,15 @@ description: Search through posts and other content on my site.
const nextResults = await loadSearchIndex($input.value.trim(), getSelectedSections(), currentPage);
currentResults = [...currentResults, ...nextResults];
const filteredResults = nextResults.filter((item) => {
if (resultIds.has(item.id)) return false;
resultIds.add(item.id);
return true;
});
updateSearchResults(nextResults);
currentResults = [...currentResults, ...filteredResults];
updateSearchResults(filteredResults);
});
})();
});