diff --git a/src/renderer/src/pages/settings/QuickAssistantSettings.tsx b/src/renderer/src/pages/settings/QuickAssistantSettings.tsx index b7279fce6f..a547a5450b 100644 --- a/src/renderer/src/pages/settings/QuickAssistantSettings.tsx +++ b/src/renderer/src/pages/settings/QuickAssistantSettings.tsx @@ -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')}> - - - - {defaultAssistant.name} - - {t('settings.models.quick_assistant_default_tag')} - - - {assistants - .filter((a) => a.id !== defaultAssistant.id) - .map((a) => ( - + placeholder={t('settings.models.quick_assistant_selection')} + showSearch + options={[ + { + key: defaultAssistant.id, + value: defaultAssistant.id, + title: defaultAssistant.name, + label: ( - - {a.name} + + {defaultAssistant.name} + {t('settings.models.quick_assistant_default_tag')} - - ))} - + ) + }, + ...assistants + .filter((a) => a.id !== defaultAssistant.id) + .map((a) => ({ + key: a.id, + value: a.id, + title: a.name, + label: ( + + + {a.name} + + + ) + })) + ]} + filterOption={(input, option) => matchKeywordsInString(input, option?.title || '')} + /> )}