fix user context menu

This commit is contained in:
2026-04-21 11:37:28 -04:00
parent bbe27fc6d0
commit e5c94318c1
3 changed files with 45 additions and 3 deletions
+18 -1
View File
@@ -21,9 +21,26 @@
function handleContextMenu(e: MouseEvent, member: Types.ServerMember) {
e.preventDefault();
e.stopPropagation();
const user = chat.users.find(u => u.identity.isEqual(member.identity));
const userIdHex = member.identity.toHexString();
// Try to find the full user object from the chat service
const user = chat.usersById.get(userIdHex);
console.log(`[MemberList] Right-click on member: ${member.name} (${userIdHex}). Found user: ${!!user}`);
if (user) {
chat.userContextMenu = { x: e.clientX, y: e.clientY, user };
} else {
// Fallback: create a partial user object if full metadata is missing
chat.userContextMenu = {
x: e.clientX,
y: e.clientY,
user: {
identity: member.identity,
name: member.name,
online: member.online
}
};
}
}
</script>
@@ -44,9 +44,26 @@
function handleContextMenu(e: MouseEvent, targetIdentity: any) {
e.preventDefault();
e.stopPropagation();
const user = chat.users.find((u) => u.identity.isEqual(targetIdentity));
const userIdHex = targetIdentity.toHexString();
// Use O(1) lookup from the new keyed map
const user = chat.usersById.get(userIdHex);
console.log(`[VoiceChannelGroup] Right-click on user: ${userIdHex}. Found user: ${!!user}`);
if (user) {
chat.userContextMenu = { x: e.clientX, y: e.clientY, user };
} else {
// Fallback: create a partial user object if full metadata is missing
chat.userContextMenu = {
x: e.clientX,
y: e.clientY,
user: {
identity: targetIdentity,
name: chat.getUsername(targetIdentity),
online: true
}
};
}
}
+9 -1
View File
@@ -294,13 +294,21 @@ export class ChatService {
get servers() {
return this.#db.servers;
}
get serversById() {
return this.#db.serversById;
}
get channels() {
return this.#db.channels;
}
get channelsById() {
return this.#db.channelsById;
}
get users() {
return this.#db.users;
}
get usersById() {
return this.#db.usersById;
}
get serverMembers() {
return this.#db.serverMembers;
}