diff --git a/web/src/components/ConversationList.tsx b/web/src/components/ConversationList.tsx index 181e074..993fe39 100644 --- a/web/src/components/ConversationList.tsx +++ b/web/src/components/ConversationList.tsx @@ -16,9 +16,10 @@ function isSelfDM(conv: { members: { id: string }[] }, currentUserId: string) { export function ConversationList() { const conversations = useConversationStore((s) => s.conversations); - const activeId = useConversationStore((s) => s.activeConversationId); + const activeId = useConversationStore((s) => s.activeConversationId?.toLowerCase() ?? null); const fetchConversations = useConversationStore((s) => s.fetchConversations); const createConversation = useConversationStore((s) => s.createConversation); + const setActiveConversation = useConversationStore((s) => s.setActiveConversation); const messagesByConv = useConversationStore((s) => s.messagesByConversation); const currentUser = useAuthStore((s) => s.user); const hasConvUnread = useReadStatesStore((s) => s.hasConvUnread); @@ -31,8 +32,9 @@ export function ConversationList() { fetchConversations(); }, [fetchConversations]); - const openConversation = (convId: string) => { - // mark as read when opening + const openConversation = (rawId: string) => { + const convId = rawId.toLowerCase(); + setActiveConversation(convId); const msgs = messagesByConv[convId] || []; if (msgs.length > 0) { markConvRead(convId, msgs[msgs.length - 1].id); @@ -50,7 +52,7 @@ export function ConversationList() { try { const conv = await createConversation([]); if (conv) { - navigate(`/dm/${conv.id}`); + openConversation(conv.id); } } catch (err) { console.error("Failed to create notes:", err); @@ -59,7 +61,7 @@ export function ConversationList() { }; const getLatestMessageId = (convId: string): string | undefined => { - const msgs = messagesByConv[convId] || []; + const msgs = messagesByConv[convId.toLowerCase()] || []; return msgs.length > 0 ? msgs[msgs.length - 1].id : undefined; }; @@ -89,19 +91,20 @@ export function ConversationList() {

[no conversations]

)} {conversations.map((conv) => { + const convId = conv.id.toLowerCase(); const self = isSelfDM(conv, currentUser?.id || ""); const name = self ? "Notes" : conv.type === "group_dm" ? conv.name || conv.members.map((m) => m.username).join(", ") : otherMemberName(conv, currentUser?.id || ""); - const unread = hasConvUnread(conv.id, getLatestMessageId(conv.id)); + const unread = hasConvUnread(convId, getLatestMessageId(convId)); return (