import 'package:flutter/material.dart'; import '../theme/app_theme.dart'; class StatusBadge extends StatelessWidget { final String status; final bool small; const StatusBadge(this.status, {super.key, this.small = false}); @override Widget build(BuildContext context) { final (bg, fg, label) = _resolve(status); final pad = small ? const EdgeInsets.symmetric(horizontal: 8, vertical: 3) : const EdgeInsets.symmetric(horizontal: 10, vertical: 4); final fs = small ? 10.0 : 11.0; return Container( padding: pad, decoration: BoxDecoration(color: bg, borderRadius: BorderRadius.circular(999)), child: Text(label, style: TextStyle(color: fg, fontSize: fs, fontWeight: FontWeight.w600)), ); } static (Color, Color, String) _resolve(String status) => switch (status.toLowerCase()) { 'todo' => (AppColors.blueLight, AppColors.blue, 'Todo'), 'in_progress' => (AppColors.warningLight, const Color(0xFFB45309), 'In Progress'), 'done' => (AppColors.primaryLight, AppColors.primaryDark, 'Done'), 'active' => (AppColors.primaryLight, AppColors.primaryDark, 'Active'), 'upcoming' => (AppColors.blueLight, AppColors.blue, 'Upcoming'), 'expired' => (const Color(0xFFF3F4F6), const Color(0xFF6B7280), 'Expired'), 'replaced' => (const Color(0xFFF3E8FF), const Color(0xFF7C3AED), 'Replaced'), 'disetujui' => (AppColors.primaryLight, AppColors.primaryDark, 'Approved'), 'menunggu' => (AppColors.warningLight, const Color(0xFFB45309), 'Pending'), 'ditolak' => (AppColors.dangerLight, AppColors.danger, 'Rejected'), _ => (AppColors.blueLight, AppColors.blue, status), }; }