diff --git a/webapp/channels/src/components/search/search.tsx b/webapp/channels/src/components/search/search.tsx index b7e11b1e72..46ccffbf70 100644 --- a/webapp/channels/src/components/search/search.tsx +++ b/webapp/channels/src/components/search/search.tsx @@ -55,11 +55,21 @@ const determineVisibleSearchHintOptions = (searchTerms: string, searchType: Sear const pretext = pretextArray[pretextArray.length - 1]; const penultimatePretext = pretextArray[pretextArray.length - 2]; - const shouldShowHintOptions = penultimatePretext ? !options.some(({searchTerm}) => penultimatePretext.toLowerCase().endsWith(searchTerm.toLowerCase())) : !options.some(({searchTerm}) => searchTerms.toLowerCase().endsWith(searchTerm.toLowerCase())); + let shouldShowHintOptions: boolean; + + if (penultimatePretext) { + shouldShowHintOptions = !(options.some(({searchTerm}) => penultimatePretext.toLowerCase().endsWith(searchTerm.toLowerCase())) && penultimatePretext !== '@'); + } else { + shouldShowHintOptions = !options.some(({searchTerm}) => searchTerms.toLowerCase().endsWith(searchTerm.toLowerCase())) || searchTerms === '@'; + } if (shouldShowHintOptions) { try { newVisibleSearchHintOptions = options.filter((option) => { + if (pretext === '@' && option.searchTerm === 'From:') { + return true; + } + return new RegExp(pretext, 'ig'). test(option.searchTerm) && option.searchTerm.toLowerCase() !== pretext.toLowerCase(); });