fix(dm): add image paste support to DM chat and fix realtime DM updates

This commit is contained in:
2026-07-06 13:44:41 +00:00
parent 0c26e2402b
commit c2fb3165f4
3 changed files with 127 additions and 31 deletions
+25 -1
View File
@@ -42,6 +42,8 @@ interface ConversationState {
fetchOlderMessages: (conversationId: string) => Promise<void>;
sendMessage: (conversationId: string, content: string) => Promise<ConversationMessage>;
addMessage: (message: ConversationMessage) => void;
updateMessage: (message: ConversationMessage) => void;
deleteMessage: (conversationId: string, messageId: string) => void;
}
export const useConversationStore = create<ConversationState>((set, get) => ({
@@ -151,8 +153,30 @@ export const useConversationStore = create<ConversationState>((set, get) => ({
[message.conversation_id]: [
...(state.messagesByConversation[message.conversation_id] || []),
message,
],
].sort((a, b) => new Date(a.created_at).getTime() - new Date(b.created_at).getTime()),
},
}));
},
updateMessage: (message) => {
set((state) => {
const convMsgs = state.messagesByConversation[message.conversation_id] || [];
return {
messagesByConversation: {
...state.messagesByConversation,
[message.conversation_id]: convMsgs.map((m) => (m.id === message.id ? message : m)),
},
};
});
},
deleteMessage: (conversationId, messageId) => {
set((state) => {
const convMsgs = state.messagesByConversation[conversationId] || [];
return {
messagesByConversation: {
...state.messagesByConversation,
[conversationId]: convMsgs.filter((m) => m.id !== messageId),
},
};
});
},
}));