fix(dm): add image paste support to DM chat and fix realtime DM updates
This commit is contained in:
@@ -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),
|
||||
},
|
||||
};
|
||||
});
|
||||
},
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user