import React from "react"; import { useTranslation } from "react-i18next"; import { Edit3, Trash2 } from "lucide-react"; import { McpServer } from "../../types"; import { cardStyles, buttonStyles, cn } from "../../lib/styles"; import McpToggle from "./McpToggle"; interface McpListItemProps { id: string; server: McpServer; onToggle: (id: string, enabled: boolean) => void; onEdit: (id: string) => void; onDelete: (id: string) => void; } /** * MCP 列表项组件 * 每个 MCP 占一行,左侧是 Toggle 开关,中间是名称和详细信息,右侧是编辑和删除按钮 */ const McpListItem: React.FC = ({ id, server, onToggle, onEdit, onDelete, }) => { const { t } = useTranslation(); // 仅当显式为 true 时视为启用;避免 undefined 被误判为启用 const enabled = server.enabled === true; // 只显示 description,没有则留空 const description = (server as any).description || ""; return (
{/* 左侧:Toggle 开关 */}
onToggle(id, newEnabled)} />
{/* 中间:名称和详细信息 */}

{id}

{description && (

{description}

)}
{/* 右侧:操作按钮 */}
); }; export default McpListItem;