feat: integrate ErrorService for consistent error display and standardize bloc error messages.

This commit is contained in:
Van Leemput Dayron
2025-12-02 13:59:40 +01:00
parent 1e70b9e09f
commit 6757cb013a
24 changed files with 927 additions and 608 deletions

View File

@@ -10,6 +10,7 @@ import '../../services/activity_cache_service.dart';
import '../loading/laoding_content.dart';
import '../../blocs/user/user_bloc.dart';
import '../../blocs/user/user_state.dart';
import '../../services/error_service.dart';
class ActivitiesPage extends StatefulWidget {
final Trip trip;
@@ -120,22 +121,15 @@ class _ActivitiesPageState extends State<ActivitiesPage>
return BlocListener<ActivityBloc, ActivityState>(
listener: (context, state) {
if (state is ActivityError) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(state.message),
backgroundColor: Colors.red,
action: SnackBarAction(
label: 'Réessayer',
textColor: Colors.white,
onPressed: () {
if (_tabController.index == 2) {
_searchGoogleActivities();
} else {
_loadActivities();
}
},
),
),
ErrorService().showError(
message: state.message,
onRetry: () {
if (_tabController.index == 2) {
_searchGoogleActivities();
} else {
_loadActivities();
}
},
);
}
@@ -152,20 +146,14 @@ class _ActivitiesPageState extends State<ActivitiesPage>
});
// Afficher un feedback de succès
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('${state.activity.name} ajoutée au voyage !'),
duration: const Duration(seconds: 2),
backgroundColor: Colors.green,
action: SnackBarAction(
label: 'Voir',
textColor: Colors.white,
onPressed: () {
// Revenir à l'onglet des activités du voyage
_tabController.animateTo(0);
},
),
),
// Afficher un feedback de succès
ErrorService().showSnackbar(
message: '${state.activity.name} ajoutée au voyage !',
isError: false,
onRetry: () {
// Revenir à l'onglet des activités du voyage
_tabController.animateTo(0);
},
);
});
}
@@ -217,21 +205,13 @@ class _ActivitiesPageState extends State<ActivitiesPage>
_tripActivities.add(state.newlyAddedActivity!);
});
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
ErrorService().showSnackbar(
message:
'${state.newlyAddedActivity!.name} ajoutée au voyage !',
),
duration: const Duration(seconds: 2),
backgroundColor: Colors.green,
action: SnackBarAction(
label: 'Voir',
textColor: Colors.white,
onPressed: () {
_tabController.animateTo(0);
},
),
),
isError: false,
onRetry: () {
_tabController.animateTo(0);
},
);
});
}
@@ -1026,12 +1006,9 @@ class _ActivitiesPageState extends State<ActivitiesPage>
// Si l'activité a été trouvée et que l'utilisateur a déjà voté
if (currentActivity.id.isNotEmpty && currentActivity.hasUserVoted(userId)) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Vous avez déjà voté pour cette activité'),
backgroundColor: Colors.orange,
duration: Duration(seconds: 2),
),
ErrorService().showSnackbar(
message: 'Vous avez déjà voté pour cette activité',
isError: true,
);
return;
}
@@ -1044,13 +1021,7 @@ class _ActivitiesPageState extends State<ActivitiesPage>
final message = vote == 1
? 'Vote positif ajouté !'
: 'Vote négatif ajouté !';
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(message),
duration: const Duration(seconds: 1),
backgroundColor: vote == 1 ? Colors.green : Colors.orange,
),
);
ErrorService().showSnackbar(message: message, isError: false);
}
void _addGoogleActivityToTrip(Activity activity) {