feat: Implement group balance and expense management with new navigation and data handling
This commit is contained in:
@@ -7,7 +7,8 @@ import '../../blocs/account/account_state.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:travel_mate/components/error/error_content.dart';
|
||||
import '../../blocs/user/user_state.dart' as user_state;
|
||||
|
||||
import '../../repositories/group_repository.dart'; // Ajouter cet import
|
||||
import 'group_expenses_page.dart'; // Ajouter cet import
|
||||
|
||||
class AccountContent extends StatefulWidget {
|
||||
const AccountContent({super.key});
|
||||
@@ -17,6 +18,8 @@ class AccountContent extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _AccountContentState extends State<AccountContent> {
|
||||
final _groupRepository = GroupRepository(); // Ajouter cette ligne
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
@@ -45,6 +48,44 @@ class _AccountContentState extends State<AccountContent> {
|
||||
}
|
||||
}
|
||||
|
||||
// Nouvelle méthode pour naviguer vers la page des dépenses de groupe
|
||||
Future<void> _navigateToGroupExpenses(Account account) async {
|
||||
try {
|
||||
// Récupérer le groupe associé au compte
|
||||
final group = await _groupRepository.getGroupByTripId(account.tripId);
|
||||
|
||||
if (group != null && mounted) {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => GroupExpensesPage(
|
||||
account: account,
|
||||
group: group,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Groupe non trouvé pour ce compte'),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text('Erreur lors du chargement du groupe: $e'),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocBuilder<UserBloc, user_state.UserState>(
|
||||
@@ -221,7 +262,7 @@ class _AccountContentState extends State<AccountContent> {
|
||||
),
|
||||
subtitle: Text(memberInfo),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () {},
|
||||
onTap: () => _navigateToGroupExpenses(account), // Modifier cette ligne
|
||||
),
|
||||
);
|
||||
} catch (e) {
|
||||
@@ -234,6 +275,4 @@ class _AccountContentState extends State<AccountContent> {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user