From cd73a0d75c11a9b5812c80c515f1a7ddbe0d3e17 Mon Sep 17 00:00:00 2001 From: Pleasurecruise <3196812536@qq.com> Date: Tue, 20 May 2025 16:15:20 +0800 Subject: [PATCH] fix: replace useSelector with useStore for message selection in ChatContext --- src/renderer/src/pages/home/Messages/ChatContext.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/pages/home/Messages/ChatContext.tsx b/src/renderer/src/pages/home/Messages/ChatContext.tsx index 702da1c262..221fd22adb 100644 --- a/src/renderer/src/pages/home/Messages/ChatContext.tsx +++ b/src/renderer/src/pages/home/Messages/ChatContext.tsx @@ -6,7 +6,7 @@ import { Topic } from '@renderer/types' import { Modal } from 'antd' import { createContext, FC, ReactNode, use, useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' -import { useSelector } from 'react-redux' +import { useStore } from 'react-redux' interface ChatContextProps { isMultiSelectMode: boolean @@ -44,8 +44,7 @@ export const ChatProvider: FC = ({ children, activeTopic }) = const [messagesToDelete, setMessagesToDelete] = useState([]) const [messageRefs, setMessageRefs] = useState>(new Map()) - const messages = useSelector((state: RootState) => selectMessagesForTopic(state, activeTopic.id)) - const messageBlocks = useSelector(messageBlocksSelectors.selectEntities) + const store = useStore() const toggleMultiSelectMode = (value: boolean) => { setIsMultiSelectMode(value) @@ -75,6 +74,8 @@ export const ChatProvider: FC = ({ children, activeTopic }) = if (display === 'none') { // 如果消息隐藏,需要处理显示逻辑 // 查找消息并设置为选中状态 + const state = store.getState() + const messages = selectMessagesForTopic(state, activeTopic.id) const message = messages.find((m) => m.id === messageId) if (message) { // 这里需要实现设置消息为选中状态的逻辑 @@ -105,6 +106,10 @@ export const ChatProvider: FC = ({ children, activeTopic }) = return } + const state = store.getState() + const messages = selectMessagesForTopic(state, activeTopic.id) + const messageBlocks = messageBlocksSelectors.selectEntities(state) + switch (actionType) { case 'delete': setMessagesToDelete(messageIds)