fix: disabled switch topic while generating message

This commit is contained in:
kangfenmao 2024-07-22 10:22:47 +08:00
parent a5d6e2c5c5
commit 3f3b930819
2 changed files with 15 additions and 3 deletions

View File

@ -41,7 +41,8 @@ const resources = {
'error.enter.model': 'Please select a model first',
'api.connection.failed': 'Connection failed',
'api.connection.success': 'Connection successful',
'chat.completion.paused': 'Chat completion paused'
'chat.completion.paused': 'Chat completion paused',
'topics.switch.disabled': 'Switching topics is disabled while the assistant is generating'
},
assistant: {
'default.name': '😀 Default Assistant',
@ -174,7 +175,8 @@ const resources = {
'error.enter.model': '请选择一个模型',
'api.connection.failed': '连接失败',
'api.connection.success': '连接成功',
'chat.completion.paused': '会话已停止'
'chat.completion.paused': '会话已停止',
'topics.switch.disabled': '模型回复完成后才能切换话题'
},
assistant: {
'default.name': '😃 默认助手 - Assistant',

View File

@ -11,6 +11,7 @@ import LocalStorage from '@renderer/services/storage'
import { DragDropContext, Draggable, Droppable, DropResult } from '@hello-pangea/dnd'
import { droppableReorder } from '@renderer/utils'
import { useTranslation } from 'react-i18next'
import { useAppSelector } from '@renderer/store'
interface Props {
assistant: Assistant
@ -22,6 +23,7 @@ const Topics: FC<Props> = ({ assistant, activeTopic, setActiveTopic }) => {
const { showRightSidebar } = useShowRightSidebar()
const { removeTopic, updateTopic, removeAllTopics, updateTopics } = useAssistant(assistant.id)
const { t } = useTranslation()
const generating = useAppSelector((state) => state.runtime.generating)
const getTopicMenuItems = (topic: Topic) => {
const menus: MenuProps['items'] = [
@ -82,6 +84,14 @@ const Topics: FC<Props> = ({ assistant, activeTopic, setActiveTopic }) => {
}
}
const onSwitchTopic = (topic: Topic) => {
if (generating) {
window.message.info({ content: t('message.topics.switch.disabled'), key: 'switch-topic' })
return
}
setActiveTopic(topic)
}
return (
<Container style={{ display: showRightSidebar ? 'block' : 'none' }}>
<TopicTitle>
@ -111,7 +121,7 @@ const Topics: FC<Props> = ({ assistant, activeTopic, setActiveTopic }) => {
<Dropdown menu={{ items: getTopicMenuItems(topic) }} trigger={['contextMenu']} key={topic.id}>
<TopicListItem
className={topic.id === activeTopic?.id ? 'active' : ''}
onClick={() => setActiveTopic(topic)}>
onClick={() => onSwitchTopic(topic)}>
{topic.name}
</TopicListItem>
</Dropdown>