mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-30 15:59:09 +08:00
fix: quick assistant avatar and search (#10281)
This commit is contained in:
parent
5524571c80
commit
20f5271682
@ -11,9 +11,10 @@ import {
|
||||
setEnableQuickAssistant,
|
||||
setReadClipboardAtStartup
|
||||
} from '@renderer/store/settings'
|
||||
import { matchKeywordsInString } from '@renderer/utils'
|
||||
import HomeWindow from '@renderer/windows/mini/home/HomeWindow'
|
||||
import { Button, Select, Switch, Tooltip } from 'antd'
|
||||
import { FC } from 'react'
|
||||
import { FC, useMemo } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import styled from 'styled-components'
|
||||
|
||||
@ -26,9 +27,15 @@ const QuickAssistantSettings: FC = () => {
|
||||
const dispatch = useAppDispatch()
|
||||
const { assistants } = useAssistants()
|
||||
const { quickAssistantId } = useAppSelector((state) => state.llm)
|
||||
const { defaultAssistant } = useDefaultAssistant()
|
||||
const { defaultAssistant: _defaultAssistant } = useDefaultAssistant()
|
||||
const { defaultModel } = useDefaultModel()
|
||||
|
||||
// Take the "default assistant" from the assistant list first.
|
||||
const defaultAssistant = useMemo(
|
||||
() => assistants.find((a) => a.id === _defaultAssistant.id) || _defaultAssistant,
|
||||
[assistants, _defaultAssistant]
|
||||
)
|
||||
|
||||
const handleEnableQuickAssistant = async (enable: boolean) => {
|
||||
dispatch(setEnableQuickAssistant(enable))
|
||||
await window.api.config.set('enableQuickAssistant', enable, true)
|
||||
@ -110,27 +117,39 @@ const QuickAssistantSettings: FC = () => {
|
||||
value={quickAssistantId || defaultAssistant.id}
|
||||
style={{ width: 300, height: 34 }}
|
||||
onChange={(value) => dispatch(setQuickAssistantId(value))}
|
||||
placeholder={t('settings.models.quick_assistant_selection')}>
|
||||
<Select.Option key={defaultAssistant.id} value={defaultAssistant.id}>
|
||||
<AssistantItem>
|
||||
<ModelAvatar model={defaultAssistant.model || defaultModel} size={18} />
|
||||
<AssistantName>{defaultAssistant.name}</AssistantName>
|
||||
<Spacer />
|
||||
<DefaultTag isCurrent={true}>{t('settings.models.quick_assistant_default_tag')}</DefaultTag>
|
||||
</AssistantItem>
|
||||
</Select.Option>
|
||||
{assistants
|
||||
.filter((a) => a.id !== defaultAssistant.id)
|
||||
.map((a) => (
|
||||
<Select.Option key={a.id} value={a.id}>
|
||||
placeholder={t('settings.models.quick_assistant_selection')}
|
||||
showSearch
|
||||
options={[
|
||||
{
|
||||
key: defaultAssistant.id,
|
||||
value: defaultAssistant.id,
|
||||
title: defaultAssistant.name,
|
||||
label: (
|
||||
<AssistantItem>
|
||||
<ModelAvatar model={a.model || defaultModel} size={18} />
|
||||
<AssistantName>{a.name}</AssistantName>
|
||||
<ModelAvatar model={defaultAssistant.model || defaultModel} size={18} />
|
||||
<AssistantName>{defaultAssistant.name}</AssistantName>
|
||||
<Spacer />
|
||||
<DefaultTag isCurrent={true}>{t('settings.models.quick_assistant_default_tag')}</DefaultTag>
|
||||
</AssistantItem>
|
||||
</Select.Option>
|
||||
))}
|
||||
</Select>
|
||||
)
|
||||
},
|
||||
...assistants
|
||||
.filter((a) => a.id !== defaultAssistant.id)
|
||||
.map((a) => ({
|
||||
key: a.id,
|
||||
value: a.id,
|
||||
title: a.name,
|
||||
label: (
|
||||
<AssistantItem>
|
||||
<ModelAvatar model={a.model || defaultModel} size={18} />
|
||||
<AssistantName>{a.name}</AssistantName>
|
||||
<Spacer />
|
||||
</AssistantItem>
|
||||
)
|
||||
}))
|
||||
]}
|
||||
filterOption={(input, option) => matchKeywordsInString(input, option?.title || '')}
|
||||
/>
|
||||
</HStack>
|
||||
)}
|
||||
<HStack alignItems="center" gap={0}>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user