From fdd815879a32ff75ad0c89bcde8e42118412942e Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Tue, 3 Sep 2024 21:18:16 +0800 Subject: [PATCH] feat: double click to change assistat view --- electron-builder.yml | 5 +- src/renderer/src/pages/home/Assistants.tsx | 62 +++++++++++++++++++--- src/renderer/src/pages/home/HomePage.tsx | 1 - 3 files changed, 57 insertions(+), 11 deletions(-) diff --git a/electron-builder.yml b/electron-builder.yml index 5e1edb3430..448c8afda1 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -57,5 +57,6 @@ electronDownload: afterSign: scripts/notarize.js releaseInfo: releaseNotes: | - 增加应用备份和恢复功能 - 增加更多AI小程序 + 智能助理和消息列表合并 + 优化输入框样式 + 提升小程序稳定性 diff --git a/src/renderer/src/pages/home/Assistants.tsx b/src/renderer/src/pages/home/Assistants.tsx index 07e1c04b85..22ae869cc6 100644 --- a/src/renderer/src/pages/home/Assistants.tsx +++ b/src/renderer/src/pages/home/Assistants.tsx @@ -1,6 +1,5 @@ import { ArrowRightOutlined, CopyOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons' import DragableList from '@renderer/components/DragableList' -import { HStack } from '@renderer/components/Layout' import AssistantSettingPopup from '@renderer/components/Popups/AssistantSettingPopup' import { useAssistant, useAssistants } from '@renderer/hooks/useAssistant' import { getDefaultTopic, syncAsistantToAgent } from '@renderer/services/assistant' @@ -8,7 +7,7 @@ import { EVENT_NAMES, EventEmitter } from '@renderer/services/event' import { useAppSelector } from '@renderer/store' import { Assistant, Topic } from '@renderer/types' import { uuid } from '@renderer/utils' -import { Dropdown } from 'antd' +import { Dropdown, Tooltip } from 'antd' import { ItemType } from 'antd/es/menu/interface' import { last } from 'lodash' import { FC, useCallback } from 'react' @@ -93,11 +92,16 @@ const Assistants: FC = ({ key: 'switch-assistant' }) } + + if (assistant.id === activeAssistant?.id) { + setShowTopics(true) + return + } + EventEmitter.emit(EVENT_NAMES.SWITCH_TOPIC_SIDEBAR) setActiveAssistant(assistant) - setShowTopics(true) }, - [generating, setActiveAssistant, setShowTopics, t] + [activeAssistant?.id, generating, setActiveAssistant, setShowTopics, t] ) if (showTopics) { @@ -117,9 +121,12 @@ const Assistants: FC = ({ onClick={() => onSwitchAssistant(assistant)} className={assistant.id === activeAssistant?.id ? 'active' : ''}> {assistant.name || t('chat.default.name')} - - - + + setShowTopics(true)}> + + + + {false && {assistant.topics.length}} )} @@ -153,18 +160,24 @@ const AssistantItem = styled.div` .anticon { opacity: 0; color: var(--color-text-3); - transition: opacity 0.2s ease-in-out; } &:hover { background-color: var(--color-background-soft); + .topics-count { + display: none; + } .anticon { opacity: 1; } } &.active { background-color: var(--color-background-mute); + .topics-count { + display: none; + } .anticon { opacity: 1; + color: var(--color-text-2); } .name { font-weight: 500; @@ -180,4 +193,37 @@ const AssistantName = styled.div` overflow: hidden; ` +const ArrowRightButton = styled.div` + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + transition: all 0.2s ease; + width: 24px; + height: 24px; + min-width: 24px; + min-height: 24px; + border-radius: 4px; + position: absolute; + right: 10px; + &:hover { + background-color: var(--color-background); + } +` + +const TopicCount = styled.div` + color: var(--color-text-3); + font-size: 12px; + margin-right: 3px; + background-color: var(--color-background-mute); + opacity: 0.8; + width: 20px; + height: 20px; + border-radius: 10px; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +` + export default Assistants diff --git a/src/renderer/src/pages/home/HomePage.tsx b/src/renderer/src/pages/home/HomePage.tsx index 8270182fef..24ee29b4f6 100644 --- a/src/renderer/src/pages/home/HomePage.tsx +++ b/src/renderer/src/pages/home/HomePage.tsx @@ -55,7 +55,6 @@ const HomePage: FC = () => { const onSetActiveTopic = (topic: Topic) => { setActiveTopic(topic) - setShowTopics(true) } return (