From 59bafb426ff018a3b8a92dee8994c5413fb30076 Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 19 Jul 2024 15:25:09 -0700 Subject: dont filter exact matches from typeahead (#4802) --- src/state/queries/actor-autocomplete.ts | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'src/state/queries/actor-autocomplete.ts') diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index 7e997ea01..abf78da3c 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -45,9 +45,13 @@ export function useActorAutocompleteQuery( }, select: React.useCallback( (data: AppBskyActorDefs.ProfileViewBasic[]) => { - return computeSuggestions(data, moderationOpts || DEFAULT_MOD_OPTS) + return computeSuggestions({ + q: prefix, + searched: data, + moderationOpts: moderationOpts || DEFAULT_MOD_OPTS, + }) }, - [moderationOpts], + [prefix, moderationOpts], ), placeholderData: maintainData ? keepPreviousData : undefined, }) @@ -81,19 +85,25 @@ export function useActorAutocompleteFn() { } } - return computeSuggestions( - res?.data.actors, - moderationOpts || DEFAULT_MOD_OPTS, - ) + return computeSuggestions({ + q: query, + searched: res?.data.actors, + moderationOpts: moderationOpts || DEFAULT_MOD_OPTS, + }) }, [queryClient, moderationOpts, agent], ) } -function computeSuggestions( - searched: AppBskyActorDefs.ProfileViewBasic[] = [], - moderationOpts: ModerationOpts, -) { +function computeSuggestions({ + q, + searched = [], + moderationOpts, +}: { + q?: string + searched?: AppBskyActorDefs.ProfileViewBasic[] + moderationOpts: ModerationOpts +}) { let items: AppBskyActorDefs.ProfileViewBasic[] = [] for (const item of searched) { if (!items.find(item2 => item2.handle === item.handle)) { @@ -102,6 +112,7 @@ function computeSuggestions( } return items.filter(profile => { const modui = moderateProfile(profile, moderationOpts).ui('profileList') - return !modui.filter || isJustAMute(modui) + const isExactMatch = q && profile.handle.toLowerCase() === q + return isExactMatch || !modui.filter || isJustAMute(modui) }) } -- cgit 1.4.1