mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-09 23:10:20 +08:00
refactor: simplify HomeTabs component by removing unused imports and commented code, update AssistantAddItem hover styles
This commit is contained in:
parent
10caef2c4c
commit
21e88b02ea
@ -197,12 +197,7 @@ const AssistantAddItem = styled.div`
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: var(--color-background-soft);
|
background-color: var(--color-list-item-hover);
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
background-color: var(--color-background-soft);
|
|
||||||
border: 0.5px solid var(--color-border);
|
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,8 @@
|
|||||||
import AddAssistantPopup from '@renderer/components/Popups/AddAssistantPopup'
|
import AddAssistantPopup from '@renderer/components/Popups/AddAssistantPopup'
|
||||||
import { useAssistants, useDefaultAssistant } from '@renderer/hooks/useAssistant'
|
import { useAssistants, useDefaultAssistant } from '@renderer/hooks/useAssistant'
|
||||||
import { useSettings } from '@renderer/hooks/useSettings'
|
|
||||||
import { useShowTopics } from '@renderer/hooks/useStore'
|
|
||||||
import { Assistant, Topic } from '@renderer/types'
|
import { Assistant, Topic } from '@renderer/types'
|
||||||
import { uuid } from '@renderer/utils'
|
import { uuid } from '@renderer/utils'
|
||||||
import { Segmented as AntSegmented } from 'antd'
|
|
||||||
import { FC } from 'react'
|
import { FC } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
|
||||||
import styled from 'styled-components'
|
import styled from 'styled-components'
|
||||||
|
|
||||||
import Assistants from './AssistantsTab'
|
import Assistants from './AssistantsTab'
|
||||||
@ -19,37 +15,14 @@ interface Props {
|
|||||||
activeTopic: Topic
|
activeTopic: Topic
|
||||||
setActiveAssistant: (assistant: Assistant) => void
|
setActiveAssistant: (assistant: Assistant) => void
|
||||||
setActiveTopic: (topic: Topic) => void
|
setActiveTopic: (topic: Topic) => void
|
||||||
position: 'left' | 'right'
|
|
||||||
forceToSeeAllTab?: boolean
|
|
||||||
style?: React.CSSProperties
|
style?: React.CSSProperties
|
||||||
}
|
}
|
||||||
|
|
||||||
type Tab = 'assistants' | 'topic' | 'settings'
|
type Tab = 'assistants' | 'topic' | 'settings'
|
||||||
|
|
||||||
const HomeTabs: FC<Props> = ({
|
const HomeTabs: FC<Props> = ({ tab, activeAssistant, activeTopic, setActiveAssistant, setActiveTopic, style }) => {
|
||||||
tab,
|
|
||||||
activeAssistant,
|
|
||||||
activeTopic,
|
|
||||||
setActiveAssistant,
|
|
||||||
setActiveTopic,
|
|
||||||
position,
|
|
||||||
forceToSeeAllTab,
|
|
||||||
style
|
|
||||||
}) => {
|
|
||||||
const { addAssistant } = useAssistants()
|
const { addAssistant } = useAssistants()
|
||||||
const { topicPosition } = useSettings()
|
|
||||||
const { defaultAssistant } = useDefaultAssistant()
|
const { defaultAssistant } = useDefaultAssistant()
|
||||||
const { showTopics, toggleShowTopics } = useShowTopics()
|
|
||||||
|
|
||||||
const { t } = useTranslation()
|
|
||||||
|
|
||||||
const showTab = !(position === 'left' && topicPosition === 'right')
|
|
||||||
|
|
||||||
const assistantTab = {
|
|
||||||
label: t('assistants.abbr'),
|
|
||||||
value: 'assistants'
|
|
||||||
// icon: <BotIcon size={16} />
|
|
||||||
}
|
|
||||||
|
|
||||||
const onCreateAssistant = async () => {
|
const onCreateAssistant = async () => {
|
||||||
const assistant = await AddAssistantPopup.show()
|
const assistant = await AddAssistantPopup.show()
|
||||||
@ -62,36 +35,6 @@ const HomeTabs: FC<Props> = ({
|
|||||||
setActiveAssistant(assistant)
|
setActiveAssistant(assistant)
|
||||||
}
|
}
|
||||||
|
|
||||||
// useEffect(() => {
|
|
||||||
// const unsubscribes = [
|
|
||||||
// EventEmitter.on(EVENT_NAMES.SHOW_ASSISTANTS, (): any => {
|
|
||||||
// showTab && setTab('assistants')
|
|
||||||
// }),
|
|
||||||
// EventEmitter.on(EVENT_NAMES.SHOW_TOPIC_SIDEBAR, (): any => {
|
|
||||||
// showTab && setTab('topic')
|
|
||||||
// }),
|
|
||||||
// EventEmitter.on(EVENT_NAMES.SHOW_CHAT_SETTINGS, (): any => {
|
|
||||||
// showTab && setTab('settings')
|
|
||||||
// }),
|
|
||||||
// EventEmitter.on(EVENT_NAMES.SWITCH_TOPIC_SIDEBAR, () => {
|
|
||||||
// showTab && setTab('topic')
|
|
||||||
// if (position === 'left' && topicPosition === 'right') {
|
|
||||||
// toggleShowTopics()
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
// ]
|
|
||||||
// return () => unsubscribes.forEach((unsub) => unsub())
|
|
||||||
// }, [position, showTab, tab, toggleShowTopics, topicPosition])
|
|
||||||
|
|
||||||
// useEffect(() => {
|
|
||||||
// if (position === 'right' && topicPosition === 'right' && tab === 'assistants') {
|
|
||||||
// setTab('topic')
|
|
||||||
// }
|
|
||||||
// if (position === 'left' && topicPosition === 'right' && forceToSeeAllTab != true && tab !== 'assistants') {
|
|
||||||
// setTab('assistants')
|
|
||||||
// }
|
|
||||||
// }, [position, tab, topicPosition, forceToSeeAllTab])
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container style={{ ...style }} className="home-tabs">
|
<Container style={{ ...style }} className="home-tabs">
|
||||||
<TabContent className="home-tabs-content">
|
<TabContent className="home-tabs-content">
|
||||||
@ -134,68 +77,4 @@ const TabContent = styled.div`
|
|||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
`
|
`
|
||||||
|
|
||||||
const Divider = styled.div`
|
|
||||||
border-top: 0.5px solid var(--color-border);
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 10px;
|
|
||||||
`
|
|
||||||
|
|
||||||
const Segmented = styled(AntSegmented)`
|
|
||||||
font-family: var(--font-family);
|
|
||||||
|
|
||||||
&.ant-segmented {
|
|
||||||
background-color: transparent;
|
|
||||||
margin: 0 10px;
|
|
||||||
margin-top: 10px;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.ant-segmented-item {
|
|
||||||
overflow: hidden;
|
|
||||||
transition: none !important;
|
|
||||||
height: 34px;
|
|
||||||
line-height: 34px;
|
|
||||||
background-color: transparent;
|
|
||||||
user-select: none;
|
|
||||||
border-radius: var(--list-item-border-radius);
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
.ant-segmented-item-selected,
|
|
||||||
.ant-segmented-item-selected:active {
|
|
||||||
transition: none !important;
|
|
||||||
background-color: var(--color-list-item);
|
|
||||||
}
|
|
||||||
.ant-segmented-item-label {
|
|
||||||
align-items: center;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
font-size: 13px;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.ant-segmented-item-label[aria-selected='true'] {
|
|
||||||
color: var(--color-text);
|
|
||||||
}
|
|
||||||
.icon-business-smart-assistant {
|
|
||||||
margin-right: -2px;
|
|
||||||
}
|
|
||||||
.ant-segmented-thumb {
|
|
||||||
transition: none !important;
|
|
||||||
background-color: var(--color-list-item);
|
|
||||||
border-radius: var(--list-item-border-radius);
|
|
||||||
box-shadow: none;
|
|
||||||
&:hover {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.ant-segmented-item-label,
|
|
||||||
.ant-segmented-item-icon {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
/* These styles ensure the same appearance as before */
|
|
||||||
border-radius: 0;
|
|
||||||
box-shadow: none;
|
|
||||||
`
|
|
||||||
|
|
||||||
export default HomeTabs
|
export default HomeTabs
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user