import { Wifi, WifiOff, Loader2 } from 'lucide-react'; import type { ConnectionStatus } from '../types/protocol'; interface ConnectionStatusProps { status: ConnectionStatus; /** rail 紧凑模式:仅显示图标 */ compact?: boolean; } export function ConnectionStatus({ status, compact = false }: ConnectionStatusProps) { const getStatusConfig = () => { switch (status) { case 'connecting': return { icon: , text: '连接中', className: 'text-[var(--accent-amber)] bg-[var(--accent-amber)]/10 border-[var(--accent-amber)]/30', }; case 'connected': return { icon: , text: '已连接', className: 'text-[var(--accent-green)] bg-[var(--accent-green)]/10 border-[var(--accent-green)]/30', }; case 'disconnected': return { icon: , text: '已断开', className: 'text-[var(--text-muted)] bg-[var(--overlay-dim)] border-[var(--border-color)]', }; case 'error': return { icon: , text: '连接错误', className: 'text-[rgb(242,90,90)] bg-[rgb(242,90,90)]/10 border-[rgb(242,90,90)]/30', }; } }; const config = getStatusConfig(); if (!config) return null; if (compact) { return (
{config.icon}
); } return (
{config.icon} {config.text}
); }