feat(mobile): amélioration UX NotImplementedFailure + SnackbarHelper

- NotImplementedFailure: ajout userFriendlyMessage et icon construction (blue)
- ErrorDisplayWidget: support spécial pour NotImplementedFailure (bientôt disponible)
- SnackbarHelper: classe centralisée pour messages cohérents (success, error, warning, info, notImplemented)
- budgets_list_page: remplace generic snackbar par SnackbarHelper.showNotImplemented
- conversations_page: remplace 2 TODOs par SnackbarHelper.showNotImplemented
- export_members: met à jour TODO obsolète (endpoint PDF maintenant disponible)
- cache_service: fix AppLogger.error calls (error: named param)
- cached_datasource_decorator: fix AppLogger.error call

Task #64 - Fix Snackbar Placeholders + NotImplementedFailure UX
This commit is contained in:
dahoud
2026-03-17 10:06:21 +00:00
parent f4bdd81141
commit b63fc46182
8 changed files with 249 additions and 26 deletions

View File

@@ -88,6 +88,8 @@ class ErrorDisplayWidget extends StatelessWidget {
return Icons.error_outline;
} else if (failure is ServerFailure) {
return Icons.cloud_off;
} else if (failure is NotImplementedFailure) {
return Icons.construction;
} else {
return Icons.warning_amber;
}
@@ -103,6 +105,8 @@ class ErrorDisplayWidget extends StatelessWidget {
return Colors.deepOrange;
} else if (failure is ValidationFailure) {
return Colors.amber;
} else if (failure is NotImplementedFailure) {
return Colors.blue[700]!;
} else {
return Theme.of(context).colorScheme.error;
}
@@ -122,6 +126,8 @@ class ErrorDisplayWidget extends StatelessWidget {
return 'Données invalides';
} else if (failure is ServerFailure) {
return 'Erreur serveur';
} else if (failure is NotImplementedFailure) {
return 'Bientôt disponible';
} else {
return 'Une erreur est survenue';
}
@@ -213,6 +219,8 @@ class ErrorBanner extends StatelessWidget {
return Icons.error_outline;
} else if (failure is ServerFailure) {
return Icons.cloud_off;
} else if (failure is NotImplementedFailure) {
return Icons.construction;
} else {
return Icons.warning_amber;
}
@@ -227,6 +235,8 @@ class ErrorBanner extends StatelessWidget {
return Colors.deepOrange;
} else if (failure is ValidationFailure) {
return Colors.amber;
} else if (failure is NotImplementedFailure) {
return Colors.blue[700]!;
} else {
return Theme.of(context).colorScheme.error;
}
@@ -245,6 +255,8 @@ class ErrorBanner extends StatelessWidget {
return 'Données invalides';
} else if (failure is ServerFailure) {
return 'Erreur serveur';
} else if (failure is NotImplementedFailure) {
return 'Bientôt disponible';
} else {
return 'Erreur';
}