import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { MCPConfig } from "#/types/settings"; import { I18nKey } from "#/i18n/declaration"; import { MCPSSEServers } from "./mcp-sse-servers"; import { MCPStdioServers } from "./mcp-stdio-servers"; import { MCPJsonEditor } from "./mcp-json-editor"; import { BrandButton } from "../brand-button"; interface MCPConfigEditorProps { mcpConfig?: MCPConfig; onChange: (config: MCPConfig) => void; } export function MCPConfigEditor({ mcpConfig, onChange }: MCPConfigEditorProps) { const { t } = useTranslation(); const [isEditing, setIsEditing] = useState(false); const handleConfigChange = (newConfig: MCPConfig) => { onChange(newConfig); setIsEditing(false); }; const config = mcpConfig || { sse_servers: [], stdio_servers: [] }; return (
{t(I18nKey.SETTINGS$MCP_TITLE)}

{t(I18nKey.SETTINGS$MCP_DESCRIPTION)}

e.stopPropagation()} > Documentation setIsEditing(!isEditing)} > {isEditing ? t(I18nKey.SETTINGS$MCP_CANCEL) : t(I18nKey.SETTINGS$MCP_EDIT_CONFIGURATION)}
{isEditing ? ( ) : ( <>
{config.sse_servers.length === 0 && config.stdio_servers.length === 0 && (
{t(I18nKey.SETTINGS$MCP_NO_SERVERS_CONFIGURED)}
)} )}
); }