refactor(MessageOperations): Remove redundant stream messages selector

- Remove unused `selectStreamMessages` selector from store
- Update `pauseMessages` hook to directly access stream messages from store state
- Simplify dependencies in `pauseMessages` callback
This commit is contained in:
kangfenmao 2025-03-12 12:00:19 +08:00
parent c13d584010
commit 01f7faff8a
2 changed files with 4 additions and 9 deletions

View File

@ -1,13 +1,12 @@
import db from '@renderer/databases' import db from '@renderer/databases'
import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService'
import { useAppDispatch, useAppSelector } from '@renderer/store' import store, { useAppDispatch, useAppSelector } from '@renderer/store'
import { import {
clearStreamMessage, clearStreamMessage,
clearTopicMessages, clearTopicMessages,
commitStreamMessage, commitStreamMessage,
resendMessage, resendMessage,
selectDisplayCount, selectDisplayCount,
selectStreamMessages,
selectTopicLoading, selectTopicLoading,
selectTopicMessages, selectTopicMessages,
setStreamMessage, setStreamMessage,
@ -27,7 +26,6 @@ import { useCallback } from 'react'
export function useMessageOperations(topic: Topic) { export function useMessageOperations(topic: Topic) {
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
const messages = useAppSelector((state) => selectTopicMessages(state, topic.id)) const messages = useAppSelector((state) => selectTopicMessages(state, topic.id))
const streamMessages = useAppSelector((state) => selectStreamMessages(state, topic.id))
/** /**
* *
@ -179,13 +177,15 @@ export function useMessageOperations(topic: Topic) {
) )
const pauseMessages = useCallback(async () => { const pauseMessages = useCallback(async () => {
const streamMessages = store.getState().messages.streamMessagesByTopic[topic.id]
if (streamMessages) { if (streamMessages) {
const streamMessagesList = Object.values(streamMessages).filter((msg) => msg?.askId && msg?.id) const streamMessagesList = Object.values(streamMessages).filter((msg) => msg?.askId && msg?.id)
for (const message of streamMessagesList) { for (const message of streamMessagesList) {
message && (await pauseMessage(message)) message && (await pauseMessage(message))
} }
} }
}, [streamMessages, pauseMessage]) }, [pauseMessage, topic.id])
/** /**
* / * /

View File

@ -482,11 +482,6 @@ export const selectTopicMessages = createSelector(
(messagesByTopic, topicId) => (topicId ? (messagesByTopic[topicId] ?? []) : []) (messagesByTopic, topicId) => (topicId ? (messagesByTopic[topicId] ?? []) : [])
) )
export const selectStreamMessages = createSelector(
[(state: RootState) => state.messages.streamMessagesByTopic, (_, topicId: string) => topicId],
(streamMessagesByTopic, topicId) => (topicId ? (streamMessagesByTopic[topicId] ?? {}) : {})
)
// 获取特定话题的loading状态 // 获取特定话题的loading状态
export const selectTopicLoading = (state: RootState, topicId?: string): boolean => { export const selectTopicLoading = (state: RootState, topicId?: string): boolean => {
const messagesState = state.messages as MessagesState const messagesState = state.messages as MessagesState