import { memo } from 'react' import { Monitor, RefreshCw, Trash2, Eye, Terminal, Pencil } from 'lucide-react' import { Button } from '@/components/ui/button' import { StatusBadge } from '@/components/StatusBadge' import { ResourceCard } from '@/components/ResourceCard' import type { Host } from '@/types' interface HostCardProps { host: Host validating: number | null onViewInfo: (h: Host) => void onOpenTerminal: (h: Host) => void onValidate: (id: number) => void onDelete: (h: Host) => void onEdit: (h: Host) => void } /** 主机卡片 — 统一 ResourceCard 样式 */ export const HostCard = memo(function HostCard({ host, validating, onViewInfo, onOpenTerminal, onValidate, onDelete, onEdit, }: HostCardProps) { return ( } fields={[ { label: '地址', value: `${host.hostIP}:${host.port}` }, { label: '用户', value: host.user }, { label: '认证', value: host.authType === 'key' ? 'SSH 密钥' : '密码' }, { label: '系统', value: `${host.os || '未知'} / ${host.arch || '未知'}` }, ]} actions={ <> } /> ) })