From ac3cfe2878029f5e202cf0d66d1ac0f1768722ae Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 22 Jul 2024 11:28:26 +0800 Subject: [PATCH] fix: disable switch while assistant generating message --- src/renderer/src/i18n/index.ts | 4 ++-- .../src/pages/home/components/Assistants.tsx | 12 +++++++++++- src/renderer/src/pages/home/components/Topics.tsx | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/i18n/index.ts b/src/renderer/src/i18n/index.ts index 30941599..b63d2cb5 100644 --- a/src/renderer/src/i18n/index.ts +++ b/src/renderer/src/i18n/index.ts @@ -42,7 +42,7 @@ const resources = { 'api.connection.failed': 'Connection failed', 'api.connection.success': 'Connection successful', 'chat.completion.paused': 'Chat completion paused', - 'topics.switch.disabled': 'Switching topics is disabled while the assistant is generating' + 'switch.disabled': 'Switching is disabled while the assistant is generating' }, assistant: { 'default.name': '😀 Default Assistant', @@ -176,7 +176,7 @@ const resources = { 'api.connection.failed': '连接失败', 'api.connection.success': '连接成功', 'chat.completion.paused': '会话已停止', - 'topics.switch.disabled': '模型回复完成后才能切换话题' + 'switch.disabled': '模型回复完成后才能切换' }, assistant: { 'default.name': '😃 默认助手 - Assistant', diff --git a/src/renderer/src/pages/home/components/Assistants.tsx b/src/renderer/src/pages/home/components/Assistants.tsx index b0a44816..72432353 100644 --- a/src/renderer/src/pages/home/components/Assistants.tsx +++ b/src/renderer/src/pages/home/components/Assistants.tsx @@ -3,6 +3,7 @@ import { DragDropContext, Draggable, Droppable, DropResult } from '@hello-pangea import AssistantSettingPopup from '@renderer/components/Popups/AssistantSettingPopup' import { useAssistant, useAssistants } from '@renderer/hooks/useAssistant' import { getDefaultTopic } from '@renderer/services/assistant' +import { useAppSelector } from '@renderer/store' import { Assistant } from '@renderer/types' import { droppableReorder, uuid } from '@renderer/utils' import { Dropdown } from 'antd' @@ -21,6 +22,7 @@ interface Props { const Assistants: FC = ({ activeAssistant, setActiveAssistant, onCreateAssistant }) => { const { assistants, removeAssistant, addAssistant, updateAssistants } = useAssistants() const { updateAssistant } = useAssistant(activeAssistant.id) + const generating = useAppSelector((state) => state.runtime.generating) const { t } = useTranslation() @@ -70,6 +72,14 @@ const Assistants: FC = ({ activeAssistant, setActiveAssistant, onCreateAs } } + const onSwitchAssistant = (assistant: Assistant) => { + if (generating) { + window.message.warning({ content: t('message.switch.disabled'), key: 'switch-assistant' }) + return + } + setActiveAssistant(assistant) + } + return ( @@ -82,7 +92,7 @@ const Assistants: FC = ({ activeAssistant, setActiveAssistant, onCreateAs
setActiveAssistant(assistant)} + onClick={() => onSwitchAssistant(assistant)} className={assistant.id === activeAssistant?.id ? 'active' : ''}> {assistant.name} diff --git a/src/renderer/src/pages/home/components/Topics.tsx b/src/renderer/src/pages/home/components/Topics.tsx index 1ac5dd15..5552ef4c 100644 --- a/src/renderer/src/pages/home/components/Topics.tsx +++ b/src/renderer/src/pages/home/components/Topics.tsx @@ -86,7 +86,7 @@ const Topics: FC = ({ assistant: _assistant, activeTopic, setActiveTopic const onSwitchTopic = (topic: Topic) => { if (generating) { - window.message.info({ content: t('message.topics.switch.disabled'), key: 'switch-topic' }) + window.message.warning({ content: t('message.switch.disabled'), key: 'switch-assistant' }) return } setActiveTopic(topic)