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 (