mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
fix(search): suggest yourself in DM from: and mentions: filters (#2854)
This commit is contained in:
1 parent
e2abfd476a
commit
5d85e88532
2 files changed
+28
-7
No files matched your search
+16
-6
@@ -396,13 +396,23 @@ export function useMessageSearchAutocomplete({
|
|||||||
if (plan.mode !== 'none') {
|
if (plan.mode !== 'none') {
|
||||||
return memberSearchResults.slice(0, limit);
|
return memberSearchResults.slice(0, limit);
|
||||||
}
|
}
|
||||||
if (channel) {
|
const usersById = new Map<string, User>();
|
||||||
const users = channel.recipientIds.map((id) => Users.getUser(id)).filter((u): u is User => u != null);
|
const currentUser = Users.getCurrentUser();
|
||||||
return matchSorter(users, searchTerm, {
|
if (currentUser) {
|
||||||
keys: ['username', 'tag'],
|
usersById.set(currentUser.id, currentUser);
|
||||||
}).slice(0, limit);
|
|
||||||
}
|
}
|
||||||
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],
|
[activeScope, currentGuildIdForScope, memberSearchResults, channel],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -54,7 +54,18 @@ export const UserFilterSheet: React.FC<UserFilterSheetProps> = observer(
|
|||||||
const members = GuildMembers.getMembers(channel.guildId);
|
const members = GuildMembers.getMembers(channel.guildId);
|
||||||
return members.map((m) => m.user);
|
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<string, User>();
|
||||||
|
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]);
|
}, [channel.guildId, channel.recipientIds]);
|
||||||
const filteredUsers = useMemo(() => {
|
const filteredUsers = useMemo(() => {
|
||||||
if (!searchTerm.trim()) {
|
if (!searchTerm.trim()) {
|
||||||
|
|||||||
Reference in new issue
Block a user