From 2f66f5b511ef34da53e4669c26874047d82f4113 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=A2=E5=A5=8B=E7=8C=AB?= Date: Mon, 10 Nov 2025 20:10:38 +0800 Subject: [PATCH] refactor(AssistantPresetsPage): added assistants subscribe settings to AssistantPresetsPage (#11184) refactor(DataSettings, MCPSettings, AssistantPresetsPage): clean up imports and enhance UI components - Removed unused imports and components from DataSettings for better clarity. - Updated MCPSettings layout by introducing a new Container styled with Scrollbar for improved scrolling. - Added AssistantsSubscribeUrlSettings component to manage subscription URLs in AssistantPresetsPage, enhancing user interaction. - Adjusted button styles and layout in AssistantPresetsPage for a more cohesive design. --- .../settings/DataSettings/DataSettings.tsx | 9 +- .../settings/MCPSettings/McpSettings.tsx | 89 ++++++++++--------- .../presets/AssistantPresetsPage.tsx | 25 ++++-- .../AssistantsSubscribeUrlSettings.tsx} | 30 +++++-- 4 files changed, 89 insertions(+), 64 deletions(-) rename src/renderer/src/pages/{settings/DataSettings/AgentsSubscribeUrlSettings.tsx => store/assistants/presets/components/AssistantsSubscribeUrlSettings.tsx} (60%) diff --git a/src/renderer/src/pages/settings/DataSettings/DataSettings.tsx b/src/renderer/src/pages/settings/DataSettings/DataSettings.tsx index c7fbffeb64..379165192e 100644 --- a/src/renderer/src/pages/settings/DataSettings/DataSettings.tsx +++ b/src/renderer/src/pages/settings/DataSettings/DataSettings.tsx @@ -23,7 +23,7 @@ import type { AppInfo } from '@renderer/types' import { formatFileSize } from '@renderer/utils' import { occupiedDirs } from '@shared/config/constant' import { Button, Progress, Switch, Typography } from 'antd' -import { FileText, FolderCog, FolderInput, FolderOpen, SaveIcon, Sparkle } from 'lucide-react' +import { FileText, FolderCog, FolderInput, FolderOpen, SaveIcon } from 'lucide-react' import type { FC } from 'react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -38,7 +38,6 @@ import { SettingRowTitle, SettingTitle } from '..' -import AgentsSubscribeUrlSettings from './AgentsSubscribeUrlSettings' import ExportMenuOptions from './ExportMenuSettings' import JoplinSettings from './JoplinSettings' import LocalBackupSettings from './LocalBackupSettings' @@ -129,11 +128,6 @@ const DataSettings: FC = () => { key: 'siyuan', title: t('settings.data.siyuan.title'), icon: - }, - { - key: 'agentssubscribe_url', - title: t('assistants.presets.settings.title'), - icon: } ] @@ -704,7 +698,6 @@ const DataSettings: FC = () => { {menu === 'joplin' && } {menu === 'obsidian' && } {menu === 'siyuan' && } - {menu === 'agentssubscribe_url' && } {menu === 'local_backup' && } diff --git a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx index d8f26610c9..6d4210fd1d 100644 --- a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx @@ -1,6 +1,7 @@ import { loggerService } from '@logger' import type { McpError } from '@modelcontextprotocol/sdk/types.js' import { DeleteIcon } from '@renderer/components/Icons' +import Scrollbar from '@renderer/components/Scrollbar' import { useTheme } from '@renderer/context/ThemeProvider' import { useMCPServer, useMCPServers } from '@renderer/hooks/useMCPServers' import { useMCPServerTrust } from '@renderer/hooks/useMCPServerTrust' @@ -740,51 +741,57 @@ const McpSettings: React.FC = () => { } return ( - - - - - - {server?.name} - {serverVersion && } + + + + + + + {server?.name} + {serverVersion && } + + - - - - setActiveTab(key as TabKey)} - style={{ marginTop: 8, backgroundColor: 'transparent' }} - /> - - + + + + + + + setActiveTab(key as TabKey)} + style={{ marginTop: 8, backgroundColor: 'transparent' }} + /> + + + ) } +const Container = styled(Scrollbar)` + height: calc(100vh - var(--navbar-height)); +` + const ServerName = styled.span` font-size: 14px; font-weight: 500; diff --git a/src/renderer/src/pages/store/assistants/presets/AssistantPresetsPage.tsx b/src/renderer/src/pages/store/assistants/presets/AssistantPresetsPage.tsx index b5fdc1d335..91ea8cce75 100644 --- a/src/renderer/src/pages/store/assistants/presets/AssistantPresetsPage.tsx +++ b/src/renderer/src/pages/store/assistants/presets/AssistantPresetsPage.tsx @@ -1,7 +1,7 @@ -import { ImportOutlined, PlusOutlined } from '@ant-design/icons' import { Navbar, NavbarCenter } from '@renderer/components/app/Navbar' import { HStack } from '@renderer/components/Layout' import ListItem from '@renderer/components/ListItem' +import GeneralPopup from '@renderer/components/Popups/GeneralPopup' import Scrollbar from '@renderer/components/Scrollbar' import CustomTag from '@renderer/components/Tags/CustomTag' import { useAssistantPresets } from '@renderer/hooks/useAssistantPresets' @@ -11,7 +11,7 @@ import type { AssistantPreset } from '@renderer/types' import { uuid } from '@renderer/utils' import { Button, Empty, Flex, Input } from 'antd' import { omit } from 'lodash' -import { Search } from 'lucide-react' +import { Import, Plus, Rss, Search } from 'lucide-react' import type { FC } from 'react' import { useCallback, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -23,6 +23,7 @@ import { groupTranslations } from './assistantPresetGroupTranslations' import AddAssistantPresetPopup from './components/AddAssistantPresetPopup' import AssistantPresetCard from './components/AssistantPresetCard' import { AssistantPresetGroupIcon } from './components/AssistantPresetGroupIcon' +import AssistantsSubscribeUrlSettings from './components/AssistantsSubscribeUrlSettings' import ImportAssistantPresetPopup from './components/ImportAssistantPresetPopup' const AssistantPresetsPage: FC = () => { @@ -175,6 +176,15 @@ const AssistantPresetsPage: FC = () => { } } + const handleSubscribeSettings = () => { + GeneralPopup.show({ + title: t('assistants.presets.settings.title'), + content: , + footer: null, + width: 600 + }) + } + return ( @@ -246,12 +256,12 @@ const AssistantPresetsPage: FC = () => { } - + {isSearchExpanded ? ( { ) )} - - + diff --git a/src/renderer/src/pages/settings/DataSettings/AgentsSubscribeUrlSettings.tsx b/src/renderer/src/pages/store/assistants/presets/components/AssistantsSubscribeUrlSettings.tsx similarity index 60% rename from src/renderer/src/pages/settings/DataSettings/AgentsSubscribeUrlSettings.tsx rename to src/renderer/src/pages/store/assistants/presets/components/AssistantsSubscribeUrlSettings.tsx index ecf4fbc756..8ea3b92fde 100755 --- a/src/renderer/src/pages/settings/DataSettings/AgentsSubscribeUrlSettings.tsx +++ b/src/renderer/src/pages/store/assistants/presets/components/AssistantsSubscribeUrlSettings.tsx @@ -1,15 +1,15 @@ import { HStack } from '@renderer/components/Layout' import { useTheme } from '@renderer/context/ThemeProvider' import { useSettings } from '@renderer/hooks/useSettings' +import { SettingDivider, SettingGroup, SettingRow, SettingRowTitle, SettingTitle } from '@renderer/pages/settings' import { useAppDispatch } from '@renderer/store' import { setAgentssubscribeUrl } from '@renderer/store/settings' import Input from 'antd/es/input/Input' +import { HelpCircle } from 'lucide-react' import type { FC } from 'react' import { useTranslation } from 'react-i18next' -import { SettingDivider, SettingGroup, SettingRow, SettingRowTitle, SettingTitle } from '..' - -const AgentsSubscribeUrlSettings: FC = () => { +const AssistantsSubscribeUrlSettings: FC = () => { const { t } = useTranslation() const { theme } = useTheme() const dispatch = useAppDispatch() @@ -20,12 +20,24 @@ const AgentsSubscribeUrlSettings: FC = () => { dispatch(setAgentssubscribeUrl(e.target.value)) } + const handleHelpClick = () => { + window.open('https://docs.cherry-ai.com/data-settings/assistants-subscribe', '_blank') + } + return ( - - {t('assistants.presets.tag.agent')} - {t('settings.tool.websearch.subscribe_add')} - + + + {t('assistants.presets.tag.agent')} + {t('settings.tool.websearch.subscribe_add')} + + + {t('settings.tool.websearch.subscribe_url')} @@ -35,7 +47,7 @@ const AgentsSubscribeUrlSettings: FC = () => { value={agentssubscribeUrl || ''} onChange={handleAgentChange} style={{ width: 315 }} - placeholder={t('settings.tool.websearch.subscribe_name.placeholder')} + placeholder={t('settings.tool.websearch.subscribe_url')} /> @@ -43,4 +55,4 @@ const AgentsSubscribeUrlSettings: FC = () => { ) } -export default AgentsSubscribeUrlSettings +export default AssistantsSubscribeUrlSettings