feat: double click to change assistat view

This commit is contained in:
kangfenmao 2024-09-03 21:18:16 +08:00
parent 635f238576
commit fdd815879a
3 changed files with 57 additions and 11 deletions

View File

@ -57,5 +57,6 @@ electronDownload:
afterSign: scripts/notarize.js afterSign: scripts/notarize.js
releaseInfo: releaseInfo:
releaseNotes: | releaseNotes: |
增加应用备份和恢复功能 智能助理和消息列表合并
增加更多AI小程序 优化输入框样式
提升小程序稳定性

View File

@ -1,6 +1,5 @@
import { ArrowRightOutlined, CopyOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons' import { ArrowRightOutlined, CopyOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'
import DragableList from '@renderer/components/DragableList' import DragableList from '@renderer/components/DragableList'
import { HStack } from '@renderer/components/Layout'
import AssistantSettingPopup from '@renderer/components/Popups/AssistantSettingPopup' import AssistantSettingPopup from '@renderer/components/Popups/AssistantSettingPopup'
import { useAssistant, useAssistants } from '@renderer/hooks/useAssistant' import { useAssistant, useAssistants } from '@renderer/hooks/useAssistant'
import { getDefaultTopic, syncAsistantToAgent } from '@renderer/services/assistant' 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 { useAppSelector } from '@renderer/store'
import { Assistant, Topic } from '@renderer/types' import { Assistant, Topic } from '@renderer/types'
import { uuid } from '@renderer/utils' import { uuid } from '@renderer/utils'
import { Dropdown } from 'antd' import { Dropdown, Tooltip } from 'antd'
import { ItemType } from 'antd/es/menu/interface' import { ItemType } from 'antd/es/menu/interface'
import { last } from 'lodash' import { last } from 'lodash'
import { FC, useCallback } from 'react' import { FC, useCallback } from 'react'
@ -93,11 +92,16 @@ const Assistants: FC<Props> = ({
key: 'switch-assistant' key: 'switch-assistant'
}) })
} }
if (assistant.id === activeAssistant?.id) {
setShowTopics(true)
return
}
EventEmitter.emit(EVENT_NAMES.SWITCH_TOPIC_SIDEBAR) EventEmitter.emit(EVENT_NAMES.SWITCH_TOPIC_SIDEBAR)
setActiveAssistant(assistant) setActiveAssistant(assistant)
setShowTopics(true)
}, },
[generating, setActiveAssistant, setShowTopics, t] [activeAssistant?.id, generating, setActiveAssistant, setShowTopics, t]
) )
if (showTopics) { if (showTopics) {
@ -117,9 +121,12 @@ const Assistants: FC<Props> = ({
onClick={() => onSwitchAssistant(assistant)} onClick={() => onSwitchAssistant(assistant)}
className={assistant.id === activeAssistant?.id ? 'active' : ''}> className={assistant.id === activeAssistant?.id ? 'active' : ''}>
<AssistantName className="name">{assistant.name || t('chat.default.name')}</AssistantName> <AssistantName className="name">{assistant.name || t('chat.default.name')}</AssistantName>
<HStack alignItems="center"> <Tooltip arrow title="话题列表" placement="bottom" mouseEnterDelay={0.5}>
<ArrowRightOutlined /> <ArrowRightButton className="arrow-button" onClick={() => setShowTopics(true)}>
</HStack> <ArrowRightOutlined />
</ArrowRightButton>
</Tooltip>
{false && <TopicCount className="topics-count">{assistant.topics.length}</TopicCount>}
</AssistantItem> </AssistantItem>
</Dropdown> </Dropdown>
)} )}
@ -153,18 +160,24 @@ const AssistantItem = styled.div`
.anticon { .anticon {
opacity: 0; opacity: 0;
color: var(--color-text-3); color: var(--color-text-3);
transition: opacity 0.2s ease-in-out;
} }
&:hover { &:hover {
background-color: var(--color-background-soft); background-color: var(--color-background-soft);
.topics-count {
display: none;
}
.anticon { .anticon {
opacity: 1; opacity: 1;
} }
} }
&.active { &.active {
background-color: var(--color-background-mute); background-color: var(--color-background-mute);
.topics-count {
display: none;
}
.anticon { .anticon {
opacity: 1; opacity: 1;
color: var(--color-text-2);
} }
.name { .name {
font-weight: 500; font-weight: 500;
@ -180,4 +193,37 @@ const AssistantName = styled.div`
overflow: hidden; 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 export default Assistants

View File

@ -55,7 +55,6 @@ const HomePage: FC = () => {
const onSetActiveTopic = (topic: Topic) => { const onSetActiveTopic = (topic: Topic) => {
setActiveTopic(topic) setActiveTopic(topic)
setShowTopics(true)
} }
return ( return (