import 'package:flutter/material.dart'; import 'package:badges/badges.dart' as badges; import 'package:pshared/models/payment/status.dart'; import 'package:pweb/utils/payment/status_view.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; class OperationStatusBadge extends StatelessWidget { final OperationStatus status; const OperationStatusBadge({super.key, required this.status}); Color _badgeColor(BuildContext context) { final l10n = AppLocalizations.of(context)!; return operationStatusView(l10n, status).color; } Color _textColor(Color background) { // computeLuminance returns 0 for black, 1 for white return background.computeLuminance() > 0.5 ? Colors.black : Colors.white; } @override Widget build(BuildContext context) { final label = status.localized(context); final bg = _badgeColor(context); final fg = _textColor(bg); return badges.Badge( badgeStyle: badges.BadgeStyle( shape: badges.BadgeShape.square, badgeColor: bg, borderRadius: BorderRadius.circular(12), // fully rounded padding: const EdgeInsets.symmetric( horizontal: 6, vertical: 2 // tighter padding ), ), badgeContent: Text( label.toUpperCase(), // or keep sentence case style: TextStyle( color: fg, fontSize: 11, // smaller text fontWeight: FontWeight.w500, // medium weight ), ), ); } }