import 'package:flutter/material.dart'; import '../models/device.dart'; import '../utils/i10n.dart'; /// 设备状态标签。 class StatusChip extends StatelessWidget { const StatusChip({super.key, required this.status}); /// 设备状态。 final DeviceStatus status; Color _color(BuildContext context) { switch (status) { case DeviceStatus.online: return Colors.green; case DeviceStatus.offline: return Colors.grey; case DeviceStatus.warning: return Colors.orange; } } @override Widget build(BuildContext context) { final color = _color(context); final t = AppLocalizations.of(context); final label = switch (status) { DeviceStatus.online => t.statusOnline, DeviceStatus.offline => t.statusOffline, DeviceStatus.warning => t.statusWarning, }; return Container( padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), decoration: BoxDecoration( color: color.withOpacity(0.15), borderRadius: BorderRadius.circular(999), border: Border.all(color: color.withOpacity(0.6)), ), child: Row( mainAxisSize: MainAxisSize.min, children: [ Icon(Icons.circle, size: 8, color: color), const SizedBox(width: 6), Text( label, style: TextStyle( color: color, fontSize: 12, fontWeight: FontWeight.w600, ), ), ], ), ); } }