From 02a452993e3e760d75f16383ae154de5ca688e97 Mon Sep 17 00:00:00 2001 From: balibabu Date: Wed, 22 Oct 2025 12:20:19 +0800 Subject: [PATCH] Feat: Adjust the style of the mcp dialog #10703 (#10719) ### What problem does this PR solve? Feat: Adjust the style of the mcp dialog #10703 ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- web/src/components/collapse.tsx | 14 ++-- web/src/components/confirm-delete-dialog.tsx | 4 +- web/src/components/ui/dialog.tsx | 2 +- web/src/components/ui/label.tsx | 2 +- web/src/hooks/common-hooks.tsx | 4 +- web/src/locales/en.ts | 6 +- web/src/locales/zh.ts | 7 +- .../parsing-status-cell/index.tsx | 4 +- web/src/pages/profile-setting/components.tsx | 19 ++++++ .../profile-setting/mcp/edit-mcp-dialog.tsx | 66 +++++++++++-------- .../profile-setting/mcp/edit-mcp-form.tsx | 6 +- web/src/pages/profile-setting/mcp/index.tsx | 55 +++++++++------- .../pages/profile-setting/mcp/mcp-card.tsx | 16 +++-- .../pages/profile-setting/mcp/tool-card.tsx | 15 ++--- 14 files changed, 134 insertions(+), 86 deletions(-) diff --git a/web/src/components/collapse.tsx b/web/src/components/collapse.tsx index 722652d12..a93a5b6cd 100644 --- a/web/src/components/collapse.tsx +++ b/web/src/components/collapse.tsx @@ -51,8 +51,8 @@ export function Collapse({ onOpenChange={handleOpenChange} disabled={disabled} > - -
+ +
- {title} +
+ {title} +
{rightContent}
- {children} + {children} ); } diff --git a/web/src/components/confirm-delete-dialog.tsx b/web/src/components/confirm-delete-dialog.tsx index 0bd36a194..f9aba0d0e 100644 --- a/web/src/components/confirm-delete-dialog.tsx +++ b/web/src/components/confirm-delete-dialog.tsx @@ -56,13 +56,13 @@ export function ConfirmDeleteDialog({ - {t('common.cancel')} + {t('common.no')} - {t('common.ok')} + {t('common.yes')} diff --git a/web/src/components/ui/dialog.tsx b/web/src/components/ui/dialog.tsx index d091c1f03..be1cca79a 100644 --- a/web/src/components/ui/dialog.tsx +++ b/web/src/components/ui/dialog.tsx @@ -73,7 +73,7 @@ const DialogFooter = ({ }: React.HTMLAttributes) => (
{ title: title ?? t('common.deleteModalTitle'), icon: , content, - okText: t('common.ok'), + okText: t('common.yes'), okType: 'danger', - cancelText: t('common.cancel'), + cancelText: t('common.no'), async onOk() { try { const ret = await onOk?.(); diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts index 980407b89..613a3db96 100644 --- a/web/src/locales/en.ts +++ b/web/src/locales/en.ts @@ -6,8 +6,9 @@ export default { selectAll: 'Select All', delete: 'Delete', deleteModalTitle: 'Are you sure to delete this item?', - ok: 'Yes', - cancel: 'No', + ok: 'Ok', + cancel: 'Cancel', + yes: 'Yes', no: 'No', total: 'Total', rename: 'Rename', @@ -1744,6 +1745,7 @@ Important structured information may include: names, dates, locations, events, k toolsAvailable: 'tools available', mcpServers: 'MCP Servers', customizeTheListOfMcpServers: 'Customize the list of MCP servers', + cachedTools: 'cached tools', }, search: { searchApps: 'Search Apps', diff --git a/web/src/locales/zh.ts b/web/src/locales/zh.ts index 303e01083..e011d55e8 100644 --- a/web/src/locales/zh.ts +++ b/web/src/locales/zh.ts @@ -6,8 +6,10 @@ export default { selectAll: '全选', delete: '删除', deleteModalTitle: '确定删除吗?', - ok: '是', - cancel: '否', + ok: '确认', + cancel: '取消', + yes: '是', + no: '否', total: '总共', rename: '重命名', name: '名称', @@ -1631,6 +1633,7 @@ Tokenizer 会根据所选方式将内容存储为对应的数据结构。`, toolsAvailable: '可用的工具', mcpServers: 'MCP 服务器', customizeTheListOfMcpServers: '自定义 MCP 服务器列表', + cachedTools: '缓存工具', }, search: { searchApps: '搜索', diff --git a/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx b/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx index bb052a669..184ea6e2f 100644 --- a/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx @@ -124,8 +124,8 @@ export const ParsingStatusCell = ({ record }: IProps) => { onConfirm={handleOperationIconClick(true)} onCancel={handleOperationIconClick(false)} disabled={record.chunk_num === 0} - okText={t('common.ok')} - cancelText={t('common.cancel')} + okText={t('common.yes')} + cancelText={t('common.no')} >
{children}; } + +type ProfileSettingWrapperCardProps = { + header: React.ReactNode; +} & PropsWithChildren; + +export function ProfileSettingWrapperCard({ + header, + children, +}: ProfileSettingWrapperCardProps) { + return ( + + + {header} + + {children} + + ); +} diff --git a/web/src/pages/profile-setting/mcp/edit-mcp-dialog.tsx b/web/src/pages/profile-setting/mcp/edit-mcp-dialog.tsx index 68dee7aa6..886d0a518 100644 --- a/web/src/pages/profile-setting/mcp/edit-mcp-dialog.tsx +++ b/web/src/pages/profile-setting/mcp/edit-mcp-dialog.tsx @@ -1,7 +1,9 @@ import { Collapse } from '@/components/collapse'; import { Button, ButtonLoading } from '@/components/ui/button'; +import { Card, CardContent } from '@/components/ui/card'; import { Dialog, + DialogClose, DialogContent, DialogFooter, DialogHeader, @@ -121,36 +123,44 @@ export function EditMcpDialog({ form={form} setFieldChanged={setFieldChanged} > - - {nextTools?.length || 0} {t('mcp.toolsAvailable')} -
- } - open={collapseOpen} - onOpenChange={setCollapseOpen} - rightContent={ -
+ } + open={collapseOpen} + onOpenChange={setCollapseOpen} + rightContent={ + + } > - - - } - > -
- {nextTools?.map((x) => ( - - ))} -
- +
+ {nextTools?.map((x) => ( + + ))} +
+ + + + + + ( - {t('common.name')} + {t('common.name')} ( - {t('mcp.url')} + {t('mcp.url')} ( - {t('mcp.serverType')} + {t('mcp.serverType')} -
{t('mcp.mcpServers')}
-
-
- {t('mcp.customizeTheListOfMcpServers')} -
-
- - - -
-
- + +
+ {t('mcp.mcpServers')} +
+
+
+ {t('mcp.customizeTheListOfMcpServers')} +
+
+ + + +
+
+ + } + > {selectedList.length > 0 && ( )} -
+ + ); } diff --git a/web/src/pages/profile-setting/mcp/mcp-card.tsx b/web/src/pages/profile-setting/mcp/mcp-card.tsx index 2cddc827f..f899bc8a1 100644 --- a/web/src/pages/profile-setting/mcp/mcp-card.tsx +++ b/web/src/pages/profile-setting/mcp/mcp-card.tsx @@ -5,6 +5,7 @@ import { IMcpServer } from '@/interfaces/database/mcp'; import { formatDate } from '@/utils/date'; import { isPlainObject } from 'lodash'; import { useMemo } from 'react'; +import { useTranslation } from 'react-i18next'; import { McpDropdown } from './mcp-dropdown'; import { UseBulkOperateMCPReturnType } from './use-bulk-operate-mcp'; import { UseEditMcpReturnType } from './use-edit-mcp'; @@ -20,6 +21,7 @@ export function McpCard({ handleSelectChange, showEditModal, }: DatasetCardProps) { + const { t } = useTranslation(); const toolLength = useMemo(() => { const tools = data.variables?.tools; if (isPlainObject(tools)) { @@ -36,7 +38,9 @@ export function McpCard({
-

{data.name}

+

+ {data.name} +

@@ -50,14 +54,12 @@ export function McpCard({ />
-
+
-
- {toolLength} cached tools +
+ {toolLength} {t('mcp.cachedTools')}
-

- {formatDate(data.update_date)} -

+

{formatDate(data.update_date)}

diff --git a/web/src/pages/profile-setting/mcp/tool-card.tsx b/web/src/pages/profile-setting/mcp/tool-card.tsx index a5c8f2953..123b4a611 100644 --- a/web/src/pages/profile-setting/mcp/tool-card.tsx +++ b/web/src/pages/profile-setting/mcp/tool-card.tsx @@ -1,4 +1,3 @@ -import { Card, CardContent } from '@/components/ui/card'; import { IMCPTool } from '@/interfaces/database/mcp'; export type McpToolCardProps = { @@ -7,13 +6,11 @@ export type McpToolCardProps = { export function McpToolCard({ data }: McpToolCardProps) { return ( - - -

{data.name}

-
- {data.description} -
-
-
+
+

{data.name}

+
+ {data.description} +
+
); }