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 || '')}
+ />
)}