feat(MessageOperations): Add local database synchronization for message updates

This commit is contained in:
kangfenmao 2025-03-12 11:22:00 +08:00
parent 0e5411d3ba
commit 38c8327cbf
3 changed files with 19 additions and 18 deletions

View File

@ -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]
)
/**

View File

@ -250,9 +250,6 @@ const MessageMenubar: FC<Props> = (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)
}

View File

@ -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