From 8cd77fe72f00b6567855b91f96568e26710cd0de Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Tue, 19 Nov 2024 15:08:04 +0800 Subject: [PATCH] feat: adjusted searchpopup dimensions and added assistant generation checks --- src/renderer/src/components/Popups/SearchPopup.tsx | 4 ++-- .../src/pages/history/components/TopicMessages.tsx | 5 +++-- src/renderer/src/pages/paintings/PaintingsPage.tsx | 4 +++- src/renderer/src/services/MessagesService.ts | 14 ++++++++++++++ 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/components/Popups/SearchPopup.tsx b/src/renderer/src/components/Popups/SearchPopup.tsx index fbe9872f17..e5bf1aefab 100644 --- a/src/renderer/src/components/Popups/SearchPopup.tsx +++ b/src/renderer/src/components/Popups/SearchPopup.tsx @@ -32,11 +32,11 @@ const PopupContainer: React.FC = ({ resolve }) => { onCancel={onCancel} afterClose={onClose} title={null} - width="80vw" + width="75vw" transitionName="ant-move-down" styles={{ content: { padding: 0, border: '1px solid var(--color-border)' }, - body: { height: '80vh' } + body: { height: '85vh' } }} footer={null}> diff --git a/src/renderer/src/pages/history/components/TopicMessages.tsx b/src/renderer/src/pages/history/components/TopicMessages.tsx index d1f54911a9..8a2b1c92cb 100644 --- a/src/renderer/src/pages/history/components/TopicMessages.tsx +++ b/src/renderer/src/pages/history/components/TopicMessages.tsx @@ -5,7 +5,7 @@ import useScrollPosition from '@renderer/hooks/useScrollPosition' import { useSettings } from '@renderer/hooks/useSettings' import { getAssistantById } from '@renderer/services/AssistantService' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' -import { locateToMessage } from '@renderer/services/MessagesService' +import { isGenerating, locateToMessage } from '@renderer/services/MessagesService' import NavigationService from '@renderer/services/NavigationService' import { Topic } from '@renderer/types' import { Button, Divider, Empty } from 'antd' @@ -30,7 +30,8 @@ const TopicMessages: FC = ({ topic, ...props }) => { return null } - const onContinueChat = (topic: Topic) => { + const onContinueChat = async (topic: Topic) => { + await isGenerating() SearchPopup.hide() const assistant = getAssistantById(topic.assistantId) navigate('/', { state: { assistant, topic } }) diff --git a/src/renderer/src/pages/paintings/PaintingsPage.tsx b/src/renderer/src/pages/paintings/PaintingsPage.tsx index 8ea675f7cd..275ed070f1 100644 --- a/src/renderer/src/pages/paintings/PaintingsPage.tsx +++ b/src/renderer/src/pages/paintings/PaintingsPage.tsx @@ -442,8 +442,10 @@ const InputContainer = styled.div` min-height: 95px; max-height: 95px; position: relative; - border-top: 1px solid var(--color-border-soft); + border: 1px solid var(--color-border-soft); transition: all 0.3s ease; + margin: 0 20px 15px 20px; + border-radius: 10px; ` const Textarea = styled(TextArea)` diff --git a/src/renderer/src/services/MessagesService.ts b/src/renderer/src/services/MessagesService.ts index 2844be8b79..1ea0078e10 100644 --- a/src/renderer/src/services/MessagesService.ts +++ b/src/renderer/src/services/MessagesService.ts @@ -1,6 +1,8 @@ import SearchPopup from '@renderer/components/Popups/SearchPopup' import { DEFAULT_CONTEXTCOUNT } from '@renderer/config/constant' import { getTopicById } from '@renderer/hooks/useTopic' +import i18n from '@renderer/i18n' +import store from '@renderer/store' import { Assistant, Message, Topic } from '@renderer/types' import { uuid } from '@renderer/utils' import { isEmpty, takeRight } from 'lodash' @@ -43,11 +45,23 @@ export function deleteMessageFiles(message: Message) { message.files && FileManager.deleteFiles(message.files) } +export function isGenerating() { + return new Promise((resolve, reject) => { + const generating = store.getState().runtime.generating + generating && window.message.warning({ content: i18n.t('message.switch.disabled'), key: 'switch-assistant' }) + generating ? reject(false) : resolve(true) + }) +} + export async function locateToMessage(navigate: NavigateFunction, message: Message) { + await isGenerating() + SearchPopup.hide() const assistant = getAssistantById(message.assistantId) const topic = await getTopicById(message.topicId) + navigate('/', { state: { assistant, topic } }) + setTimeout(() => EventEmitter.emit(EVENT_NAMES.SHOW_TOPIC_SIDEBAR), 0) setTimeout(() => EventEmitter.emit(EVENT_NAMES.LOCATE_MESSAGE + ':' + message.id), 300) }