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:
parent
c13d584010
commit
01f7faff8a
@ -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])
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 恢复/重发消息
|
* 恢复/重发消息
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user