import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import 'package:intl/intl.dart'; import '../router/app_router.dart'; import '../theme/app_colors.dart'; import '../../features/wallet/data/wallet_repository.dart'; /// Solde portefeuille compact — toujours visible (comme WashOnline). class WalletChip extends ConsumerWidget { const WalletChip({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final walletAsync = ref.watch(walletProvider); final format = NumberFormat.currency(locale: 'fr_FR', symbol: '€', decimalDigits: 2); return walletAsync.when( loading: () => const Padding( padding: EdgeInsets.only(right: 12), child: SizedBox(width: 18, height: 18, child: CircularProgressIndicator(strokeWidth: 2)), ), error: (_, __) => _ChipButton( label: '— €', onTap: () => context.go(AppRoutes.wallet), ), data: (wallet) => _ChipButton( label: format.format(wallet.currentBalance), onTap: () => context.go(AppRoutes.wallet), ), ); } } class _ChipButton extends StatelessWidget { const _ChipButton({required this.label, required this.onTap}); final String label; final VoidCallback onTap; @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.only(right: 8), child: Material( color: AppColors.primary.withValues(alpha: 0.1), borderRadius: BorderRadius.circular(20), child: InkWell( onTap: onTap, borderRadius: BorderRadius.circular(20), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), child: Row( mainAxisSize: MainAxisSize.min, children: [ const Icon(Icons.account_balance_wallet_outlined, size: 16, color: AppColors.primary), const SizedBox(width: 6), Text( label, style: const TextStyle( color: AppColors.primary, fontWeight: FontWeight.w700, fontSize: 13, ), ), ], ), ), ), ), ); } }