From 38c8327cbffc17765f85f42831921b44a2e80190 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Wed, 12 Mar 2025 11:22:00 +0800 Subject: [PATCH] feat(MessageOperations): Add local database synchronization for message updates --- .../src/hooks/useMessageOperations.ts | 6 +++- .../pages/home/Messages/MessageMenubar.tsx | 3 -- src/renderer/src/store/messages.ts | 28 +++++++++---------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/renderer/src/hooks/useMessageOperations.ts b/src/renderer/src/hooks/useMessageOperations.ts index 0991dc98..6289c235 100644 --- a/src/renderer/src/hooks/useMessageOperations.ts +++ b/src/renderer/src/hooks/useMessageOperations.ts @@ -1,3 +1,4 @@ +import db from '@renderer/databases' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' import { useAppDispatch, useAppSelector } from '@renderer/store' import { @@ -62,8 +63,11 @@ export function useMessageOperations(topic: Topic) { updates }) ) + db.topics.update(topic.id, { + messages: messages.map((m) => (m.id === messageId ? { ...m, ...updates } : m)) + }) }, - [dispatch, topic.id] + [dispatch, messages, topic.id] ) /** diff --git a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx index f102df75..cd88b6d2 100644 --- a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx +++ b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx @@ -250,9 +250,6 @@ const MessageMenubar: FC = (props) => { await modelGenerating() const selectedModel = await SelectModelPopup.show({ model }) if (!selectedModel) return - - // const mentionModelMessage: Message = resetAssistantMessage(message, selectedModel) - // dispatch(updateMessage({ topicId: topic.id, messageId: message.id, updates: _message })) resendMessage(message, { ...assistant, model: selectedModel }, true) } diff --git a/src/renderer/src/store/messages.ts b/src/renderer/src/store/messages.ts index c371d005..9fbb5f42 100644 --- a/src/renderer/src/store/messages.ts +++ b/src/renderer/src/store/messages.ts @@ -190,20 +190,6 @@ const messagesSlice = createSlice({ // } }) -export const { - setTopicLoading, - setError, - setDisplayCount, - addMessage, - updateMessage, - setCurrentTopic, - clearTopicMessages, - loadTopicMessages, - setStreamMessage, - commitStreamMessage, - clearStreamMessage -} = messagesSlice.actions - const handleResponseMessageUpdate = ( assistant: Assistant, message: Message, @@ -523,4 +509,18 @@ export const selectStreamMessage = (state: RootState, topicId: string, messageId return messagesState.streamMessagesByTopic[topicId]?.[messageId] || null } +export const { + setTopicLoading, + setError, + setDisplayCount, + addMessage, + updateMessage, + setCurrentTopic, + clearTopicMessages, + loadTopicMessages, + setStreamMessage, + commitStreamMessage, + clearStreamMessage +} = messagesSlice.actions + export default messagesSlice.reducer