From 681a08e4fd5abb4276fd3dec077ca4da2ef38919 Mon Sep 17 00:00:00 2001 From: vineyardbovines Date: Tue, 14 Jul 2026 19:19:53 -0400 Subject: [PATCH] dedupe search fallback against recent terms --- src/components/Autocomplete/useAutocomplete/index.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/Autocomplete/useAutocomplete/index.ts b/src/components/Autocomplete/useAutocomplete/index.ts index c8241511da..ce594b5bba 100644 --- a/src/components/Autocomplete/useAutocomplete/index.ts +++ b/src/components/Autocomplete/useAutocomplete/index.ts @@ -105,13 +105,23 @@ export function useAutocomplete({ }), })) - const results = mergeAutocompleteResults({ + let results = mergeAutocompleteResults({ query: q, sources: moderatedSources, remoteItems: query.data ?? [], }) if (showSearchFallback && q) { + /* + * A recent search term matching the query would duplicate the fallback + * row (their keys differ, so key dedupe can't catch it). Drop the + * matching term and let the fallback row stand in for it. + */ + const nq = q.trim().toLowerCase() + results = results.filter( + item => + !(item.type === 'search' && item.value.trim().toLowerCase() === nq), + ) results.unshift({ key: `search-${q}`, type: 'search' as const,