From dac200f330af6fec7ba408286b34831d91fe1f57 Mon Sep 17 00:00:00 2001 From: Teo Date: Tue, 13 May 2025 12:07:08 +0800 Subject: [PATCH] feature: Hide disabled options for web search (#5943) * refactor(WebSearchButton): streamline provider item creation and filter disabled items * refactor(WebSearchButton): optimize provider items mapping and add pageSize to quick panel * refactor(WebSearchButton): filter out disabled providers in items mapping --- .../pages/home/Inputbar/WebSearchButton.tsx | 52 +++++++++++-------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx b/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx index b9b0f53b43..a06b729b2e 100644 --- a/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx +++ b/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx @@ -50,29 +50,34 @@ const WebSearchButton: FC = ({ ref, assistant, ToolbarButton }) => { const providerItems = useMemo(() => { const isWebSearchModelEnabled = assistant.model && isWebSearchModel(assistant.model) - const items: QuickPanelListItem[] = providers.map((p) => ({ - label: p.name, - description: WebSearchService.isWebSearchEnabled(p.id) - ? hasObjectKey(p, 'apiKey') - ? t('settings.websearch.apikey') - : t('settings.websearch.free') - : t('chat.input.web_search.enable_content'), - icon: , - isSelected: p.id === assistant?.webSearchProviderId, - disabled: !WebSearchService.isWebSearchEnabled(p.id), - action: () => updateSelectedWebSearchProvider(p.id) - })) + const items: QuickPanelListItem[] = providers + .map((p) => ({ + label: p.name, + description: WebSearchService.isWebSearchEnabled(p.id) + ? hasObjectKey(p, 'apiKey') + ? t('settings.websearch.apikey') + : t('settings.websearch.free') + : t('chat.input.web_search.enable_content'), + icon: , + isSelected: p.id === assistant?.webSearchProviderId, + disabled: !WebSearchService.isWebSearchEnabled(p.id), + action: () => updateSelectedWebSearchProvider(p.id) + })) + .filter((o) => !o.disabled) + + if (isWebSearchModelEnabled) { + items.unshift({ + label: t('chat.input.web_search.builtin'), + description: isWebSearchModelEnabled + ? t('chat.input.web_search.builtin.enabled_content') + : t('chat.input.web_search.builtin.disabled_content'), + icon: , + isSelected: assistant.enableWebSearch, + disabled: !isWebSearchModelEnabled, + action: () => updateSelectedWebSearchBuiltin() + }) + } - items.unshift({ - label: t('chat.input.web_search.builtin'), - description: isWebSearchModelEnabled - ? t('chat.input.web_search.builtin.enabled_content') - : t('chat.input.web_search.builtin.disabled_content'), - icon: , - isSelected: assistant.enableWebSearch, - disabled: !isWebSearchModelEnabled, - action: () => updateSelectedWebSearchBuiltin() - }) items.push({ label: '前往设置' + '...', icon: , @@ -105,7 +110,8 @@ const WebSearchButton: FC = ({ ref, assistant, ToolbarButton }) => { quickPanel.open({ title: t('chat.input.web_search'), list: providerItems, - symbol: '?' + symbol: '?', + pageSize: 9 }) }, [quickPanel, providerItems, t])