diff --git a/src/renderer/src/pages/home/Messages/Messages.tsx b/src/renderer/src/pages/home/Messages/Messages.tsx index 2716ef13..32778e7e 100644 --- a/src/renderer/src/pages/home/Messages/Messages.tsx +++ b/src/renderer/src/pages/home/Messages/Messages.tsx @@ -162,10 +162,19 @@ const Messages: FC = ({ assistant, topic, setActiveTopic }) => { setTimeout(() => EventEmitter.emit(EVENT_NAMES.AI_AUTO_RENAME), 100) }), EventEmitter.on(EVENT_NAMES.AI_AUTO_RENAME, autoRenameTopic), - EventEmitter.on(EVENT_NAMES.CLEAR_MESSAGES, () => { + EventEmitter.on(EVENT_NAMES.CLEAR_MESSAGES, (data: Topic) => { + const defaultTopic = getDefaultTopic(assistant.id) + + // Clear messages of other topics + if (data && data.id !== topic.id) { + TopicManager.clearTopicMessages(data.id) + updateTopic({ ...data, name: defaultTopic.name, messages: [] }) + return + } + + // Clear messages of current topic setMessages([]) setDisplayMessages([]) - const defaultTopic = getDefaultTopic(assistant.id) const _topic = getTopic(assistant, topic.id) _topic && updateTopic({ ..._topic, name: defaultTopic.name, messages: [] }) TopicManager.clearTopicMessages(topic.id) diff --git a/src/renderer/src/pages/home/Tabs/TopicsTab.tsx b/src/renderer/src/pages/home/Tabs/TopicsTab.tsx index a306056a..23151b9c 100644 --- a/src/renderer/src/pages/home/Tabs/TopicsTab.tsx +++ b/src/renderer/src/pages/home/Tabs/TopicsTab.tsx @@ -60,17 +60,17 @@ const Topics: FC = ({ assistant: _assistant, activeTopic, setActiveTopic deleteTimerRef.current = setTimeout(() => setDeletingTopicId(null), 2000) }, []) - const onClearMessages = useCallback(() => { + const onClearMessages = useCallback((topic: Topic) => { window.keyv.set(EVENT_NAMES.CHAT_COMPLETION_PAUSED, true) store.dispatch(setGenerating(false)) - EventEmitter.emit(EVENT_NAMES.CLEAR_MESSAGES) + EventEmitter.emit(EVENT_NAMES.CLEAR_MESSAGES, topic) }, []) const handleConfirmDelete = useCallback( async (topic: Topic, e: React.MouseEvent) => { e.stopPropagation() if (assistant.topics.length === 1) { - return onClearMessages() + return onClearMessages(topic) } await modelGenerating() const index = findIndex(assistant.topics, (t) => t.id === topic.id) @@ -187,7 +187,7 @@ const Topics: FC = ({ assistant: _assistant, activeTopic, setActiveTopic window.modal.confirm({ title: t('chat.input.clear.content'), centered: true, - onOk: onClearMessages + onOk: () => onClearMessages(topic) }) } },