refactor: Centralize error and notification handling using a dedicated _errorService across various components.

This commit is contained in:
Van Leemput Dayron
2025-12-03 14:50:03 +01:00
parent 6757cb013a
commit f3ae91ccf9
10 changed files with 91 additions and 249 deletions

View File

@@ -15,6 +15,7 @@ import 'balances_tab.dart';
import 'expenses_tab.dart';
import '../../models/user_balance.dart';
import '../../models/expense.dart';
import '../../services/error_service.dart';
class GroupExpensesPage extends StatefulWidget {
final Account account;
@@ -93,20 +94,13 @@ class _GroupExpensesPageState extends State<GroupExpensesPage>
BlocListener<ExpenseBloc, ExpenseState>(
listener: (context, state) {
if (state is ExpenseOperationSuccess) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(state.message),
backgroundColor: Colors.green,
),
ErrorService().showSnackbar(
message: state.message,
isError: false,
);
_loadData(); // Recharger les données après une opération
} else if (state is ExpenseError) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(state.message),
backgroundColor: Colors.red,
),
);
ErrorService().showError(message: state.message);
} else if (state is ExpensesLoaded) {
// Rafraîchir les balances quand les dépenses changent (ex: via stream)
context.read<BalanceBloc>().add(
@@ -393,12 +387,7 @@ class _GroupExpensesPageState extends State<GroupExpensesPage>
AddExpenseDialog(group: widget.group, currentUser: userState.user),
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Erreur: utilisateur non connecté'),
backgroundColor: Colors.red,
),
);
ErrorService().showError(message: 'Erreur: utilisateur non connecté');
}
}