Files
2026-07-08 13:48:29 +03:30

44 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import '../theme/ranks.dart';
/// نشانِ رتبه (برنز/نقره/طلا/الماس/پادشاه) با رنگ و برچسبِ فارسی از سرور.
class RankBadge extends StatelessWidget {
final String tier; // bronze..king
final int? points; // در صورت نمایش امتیاز
final double size;
const RankBadge({super.key, required this.tier, this.points, this.size = 16});
@override
Widget build(BuildContext context) {
final label = rankLabel(tier);
final colors = rankGradient(tier);
return Container(
padding: EdgeInsets.symmetric(horizontal: size * 0.6, vertical: size * 0.25),
decoration: BoxDecoration(
gradient: LinearGradient(colors: colors),
borderRadius: BorderRadius.circular(size),
boxShadow: const [BoxShadow(color: Colors.black54, blurRadius: 4)],
),
child: Row(mainAxisSize: MainAxisSize.min, children: [
Image.asset(
'assets/images/badge/$tier.png',
width: size * 1.5,
height: size * 1.5,
errorBuilder: (_, __, ___) =>
Icon(Icons.military_tech, color: Colors.white, size: size * 1.1),
),
SizedBox(width: size * 0.3),
Text(
points == null ? label : '$label · $points',
style: TextStyle(
color: Colors.white,
fontSize: size * 0.85,
fontWeight: FontWeight.bold,
),
),
]),
);
}
}