fix(app): order member mention results by search relevance (#1878)

This commit is contained in:
Hampus authored and GitHub committed 2026-08-24 12:36:50 +02:00
1 parent 1f0f7d1222
commit e21544eac2
2 files changed
+9 -10

No files matched your search

@@ -1,7 +1,7 @@
// SPDX-License-Identifier: AGPL-3.0-or-later // SPDX-License-Identifier: AGPL-3.0-or-later
import type {ChannelRtcRegion} from '@app/features/channel/commands/ChannelCommands'; import type {ChannelRtcRegion} from '@app/features/channel/commands/ChannelCommands';
import type {TriggerType} from '@app/features/messaging/hooks/useTextareaAutocomplete'; import type {TriggerType} from '@app/features/messaging/utils/AutocompleteTriggerPolicy';
import type {ComboboxOption} from '@app/features/ui/components/form/FormCombobox'; import type {ComboboxOption} from '@app/features/ui/components/form/FormCombobox';
import {VOICE_CHANNEL_BITRATE_MAX, VOICE_CHANNEL_BITRATE_MIN} from '@fluxer/constants/src/LimitConstants'; import {VOICE_CHANNEL_BITRATE_MAX, VOICE_CHANNEL_BITRATE_MIN} from '@fluxer/constants/src/LimitConstants';
@@ -142,15 +142,14 @@ function matchGuildMembers(membersToUse: Array<GuildMember>, parsedQuery: Parsed
return matchedMembers; return matchedMembers;
} }
export function searchGuildMembers( export function buildMemberSearchRank(members: ReadonlyArray<GuildMember>): Map<string, number> {
membersToUse: Array<GuildMember>, const rank = new Map<string, number>();
parsedQuery: ParsedMentionQuery, for (const member of members) {
limit: number, if (!rank.has(member.user.id)) {
): Array<GuildMember> { rank.set(member.user.id, rank.size);
const matchedMembers = matchGuildMembers(membersToUse, parsedQuery); }
return [...matchedMembers] }
.sort((a, b) => getMemberDisplayName(a).toLowerCase().localeCompare(getMemberDisplayName(b).toLowerCase())) return rank;
.slice(0, limit);
} }
export function filterGuildMembers( export function filterGuildMembers(