diff --git a/fluxer_app/src/features/channel/components/message_search_bar/useMessageSearchAutocomplete.ts b/fluxer_app/src/features/channel/components/message_search_bar/useMessageSearchAutocomplete.ts index 357f10618..95db5d97e 100644 --- a/fluxer_app/src/features/channel/components/message_search_bar/useMessageSearchAutocomplete.ts +++ b/fluxer_app/src/features/channel/components/message_search_bar/useMessageSearchAutocomplete.ts @@ -396,13 +396,23 @@ export function useMessageSearchAutocomplete({ if (plan.mode !== 'none') { return memberSearchResults.slice(0, limit); } - if (channel) { - const users = channel.recipientIds.map((id) => Users.getUser(id)).filter((u): u is User => u != null); - return matchSorter(users, searchTerm, { - keys: ['username', 'tag'], - }).slice(0, limit); + const usersById = new Map(); + const currentUser = Users.getCurrentUser(); + if (currentUser) { + usersById.set(currentUser.id, currentUser); } - return []; + for (const recipientId of channel?.recipientIds ?? []) { + const user = Users.getUser(recipientId); + if (user) { + usersById.set(user.id, user); + } + } + if (usersById.size === 0) { + return []; + } + return matchSorter(Array.from(usersById.values()), searchTerm, { + keys: ['username', 'tag'], + }).slice(0, limit); }, [activeScope, currentGuildIdForScope, memberSearchResults, channel], ); diff --git a/fluxer_app/src/features/search/components/search/UserFilterSheet.tsx b/fluxer_app/src/features/search/components/search/UserFilterSheet.tsx index d42d12a26..2445cc6c3 100644 --- a/fluxer_app/src/features/search/components/search/UserFilterSheet.tsx +++ b/fluxer_app/src/features/search/components/search/UserFilterSheet.tsx @@ -54,7 +54,18 @@ export const UserFilterSheet: React.FC = observer( const members = GuildMembers.getMembers(channel.guildId); return members.map((m) => m.user); } - return channel.recipientIds.map((id) => Users.getUser(id)).filter((u): u is User => u != null); + const usersById = new Map(); + const currentUser = Users.getCurrentUser(); + if (currentUser) { + usersById.set(currentUser.id, currentUser); + } + for (const recipientId of channel.recipientIds) { + const user = Users.getUser(recipientId); + if (user) { + usersById.set(user.id, user); + } + } + return Array.from(usersById.values()); }, [channel.guildId, channel.recipientIds]); const filteredUsers = useMemo(() => { if (!searchTerm.trim()) {