Skip to content

Commit

Permalink
dont filter exact matches from typeahead (bluesky-social#4802)
Browse files Browse the repository at this point in the history
  • Loading branch information
haileyok authored Jul 19, 2024
1 parent 3627a24 commit 59bafb4
Showing 1 changed file with 22 additions and 11 deletions.
33 changes: 22 additions & 11 deletions src/state/queries/actor-autocomplete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
})
Expand Down Expand Up @@ -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)) {
Expand All @@ -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)
})
}

0 comments on commit 59bafb4

Please sign in to comment.