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
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 {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;
}
export function searchGuildMembers(
membersToUse: Array<GuildMember>,
parsedQuery: ParsedMentionQuery,
limit: number,
): Array<GuildMember> {
const matchedMembers = matchGuildMembers(membersToUse, parsedQuery);
return [...matchedMembers]
.sort((a, b) => getMemberDisplayName(a).toLowerCase().localeCompare(getMemberDisplayName(b).toLowerCase()))
.slice(0, limit);
export function buildMemberSearchRank(members: ReadonlyArray<GuildMember>): Map<string, number> {
const rank = new Map<string, number>();
for (const member of members) {
if (!rank.has(member.user.id)) {
rank.set(member.user.id, rank.size);
}
}
return rank;
}
export function filterGuildMembers(