Update: 2026-05-08 14:29:22

This commit is contained in:
Hamza-Ayed
2026-05-08 14:29:22 +03:00
parent be0571648a
commit 9bfd394b26
4 changed files with 64 additions and 18 deletions

View File

@@ -447,7 +447,8 @@ class DashboardView extends GetView<DashboardController> {
InkWell(
onTap: () => _showBadgesDialog(gamification),
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
padding:
const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
decoration: BoxDecoration(
color: Colors.white24,
borderRadius: BorderRadius.circular(20),
@@ -457,11 +458,13 @@ class DashboardView extends GetView<DashboardController> {
children: [
const Text(
'المكافآت ',
style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
style: TextStyle(
color: Colors.white, fontWeight: FontWeight.bold),
),
Text(
'$badgesCount/$availableBadges',
style: const TextStyle(color: Colors.white70, fontSize: 12),
style: const TextStyle(
color: Colors.white70, fontSize: 12),
),
],
),
@@ -491,23 +494,29 @@ class DashboardView extends GetView<DashboardController> {
void _showBadgesDialog(Map gamification) {
final badges = gamification['badges'] as List? ?? [];
Get.dialog(
AlertDialog(
title: const Text('شاراتك ومكافآتك', textAlign: TextAlign.center, style: TextStyle(color: Color(0xFF0F4C81))),
title: const Text('شاراتك ومكافآتك',
textAlign: TextAlign.center,
style: TextStyle(color: Color(0xFF0F4C81))),
content: SizedBox(
width: double.maxFinite,
child: badges.isEmpty
? const Text('لم تحصل على أي شارات بعد. قم برفع الفواتير لتبدأ!', textAlign: TextAlign.center)
? const Text('لم تحصل على أي شارات بعد. قم برفع الفواتير لتبدأ!',
textAlign: TextAlign.center)
: ListView.builder(
shrinkWrap: true,
itemCount: badges.length,
itemBuilder: (context, index) {
final b = badges[index];
return ListTile(
leading: Text(b['badge_icon'] ?? '🌟', style: const TextStyle(fontSize: 24)),
title: Text(b['badge_name'] ?? '', style: const TextStyle(fontWeight: FontWeight.bold)),
subtitle: Text('تم الحصول عليها: ${(b['earned_at'] ?? '').toString().split(' ')[0]}'),
leading: Text(b['badge_icon'] ?? '🌟',
style: const TextStyle(fontSize: 24)),
title: Text(b['badge_name'] ?? '',
style: const TextStyle(fontWeight: FontWeight.bold)),
subtitle: Text(
'تم الحصول عليها: ${(b['earned_at'] ?? '').toString().split(' ')[0]}'),
);
},
),