import React from 'react'; import { Space, Tooltip } from 'antd'; import { HddOutlined, WifiOutlined, FireOutlined, BarChartOutlined, } from '@ant-design/icons'; // 定义状态类型 interface StatusBarProps { diskStatus: 'available' | 'warning' | 'unavailable'; // 磁盘状态 batteryLevel: number; // 电量(0-100) wifiStrength: 0 | 1 | 2 | 3 | 4; // WiFi 信号强度 heatCapacity: number; // 热容(0-100) } // 磁盘状态组件 const DiskStatus: React.FC<{ status: StatusBarProps['diskStatus'] }> = ({ status, }) => { let color: string; let title: string; switch (status) { case 'available': color = 'text-green-500'; // Tailwind 绿色 title = '磁盘空间充足'; break; case 'warning': color = 'text-yellow-500'; // Tailwind 黄色 title = '磁盘空间警告'; break; case 'unavailable': color = 'text-red-500'; // Tailwind 红色 title = '磁盘不可用'; break; default: color = 'text-gray-400'; title = '未知状态'; } return ( ); }; // 电量组件 const BatteryStatus: React.FC<{ level: number }> = ({ level }) => { const color = level <= 20 ? 'text-red-500' : level <= 50 ? 'text-yellow-500' : 'text-green-500'; return ( {level} ); }; // WiFi 信号组件 const WifiStatus: React.FC<{ strength: StatusBarProps['wifiStrength'] }> = ({ strength, }) => { const colors = [ 'text-gray-400', // 0格 'text-red-500', // 1格 'text-orange-500', // 2格 'text-yellow-500', // 3格 'text-green-500', // 4格 ]; const title = `WiFi 信号: ${strength} 格`; return ( ); }; // 热容组件 const HeatCapacityStatus: React.FC<{ capacity: number }> = ({ capacity }) => { const color = capacity <= 30 ? 'text-red-500 border-red-500' : capacity <= 60 ? 'text-yellow-500 border-yellow-500' : 'text-green-500 border-green-500'; return ( {/* 火焰 */} ); }; // 主状态栏组件 const StatusBar: React.FC = ({ diskStatus, batteryLevel, wifiStrength, heatCapacity, }) => { return ( //
//
); }; export default StatusBar; export type { StatusBarProps }; export { DiskStatus, BatteryStatus, WifiStatus, HeatCapacityStatus }; export type DiskStatusType = 'available' | 'warning' | 'unavailable';