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:
12
lib/core/cache/cache_service.dart
vendored
12
lib/core/cache/cache_service.dart
vendored
@@ -35,7 +35,7 @@ class CacheService {
|
||||
|
||||
return success;
|
||||
} catch (e) {
|
||||
AppLogger.error('Erreur lors de la mise en cache de $key', e);
|
||||
AppLogger.error('Erreur lors de la mise en cache de $key', error: e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -65,7 +65,7 @@ class CacheService {
|
||||
AppLogger.debug('Cache hit: $key');
|
||||
return value as T;
|
||||
} catch (e) {
|
||||
AppLogger.error('Erreur lors de la lecture du cache $key', e);
|
||||
AppLogger.error('Erreur lors de la lecture du cache $key', error: e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -92,7 +92,7 @@ class CacheService {
|
||||
try {
|
||||
return await _prefs.remove(key);
|
||||
} catch (e) {
|
||||
AppLogger.error('Erreur lors de la suppression du cache $key', e);
|
||||
AppLogger.error('Erreur lors de la suppression du cache $key', error: e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -109,7 +109,7 @@ class CacheService {
|
||||
|
||||
AppLogger.info('Cache nettoyé pour préfixe: $prefix');
|
||||
} catch (e) {
|
||||
AppLogger.error('Erreur lors du nettoyage du cache $prefix', e);
|
||||
AppLogger.error('Erreur lors du nettoyage du cache $prefix', error: e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ class CacheService {
|
||||
try {
|
||||
return await _prefs.clear();
|
||||
} catch (e) {
|
||||
AppLogger.error('Erreur lors du nettoyage complet du cache', e);
|
||||
AppLogger.error('Erreur lors du nettoyage complet du cache', error: e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -154,7 +154,7 @@ class CacheService {
|
||||
AppLogger.info('$cleaned entrées de cache expirées nettoyées');
|
||||
}
|
||||
} catch (e) {
|
||||
AppLogger.error('Erreur lors du nettoyage des caches expirés', e);
|
||||
AppLogger.error('Erreur lors du nettoyage des caches expirés', error: e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class CachedDatasourceDecorator {
|
||||
|
||||
return result;
|
||||
} catch (e) {
|
||||
AppLogger.error('Erreur dans withCache pour $cacheKey', e);
|
||||
AppLogger.error('Erreur dans withCache pour $cacheKey', error: e);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,8 +136,15 @@ class UnexpectedFailure extends Failure {
|
||||
|
||||
/// Fonctionnalité non implémentée
|
||||
class NotImplementedFailure extends Failure {
|
||||
const NotImplementedFailure(super.message, [super.code]);
|
||||
const NotImplementedFailure(
|
||||
super.message, [
|
||||
super.code,
|
||||
super.isRetryable = false, // Not implemented features are not retryable
|
||||
super.userFriendlyMessage =
|
||||
'Cette fonctionnalité sera bientôt disponible. Nous travaillons dessus !',
|
||||
]);
|
||||
|
||||
@override
|
||||
String toString() => 'NotImplementedFailure: $message${code != null ? ' (Code: $code)' : ''}';
|
||||
String toString() =>
|
||||
'NotImplementedFailure: $message${code != null ? ' (Code: $code)' : ''}';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user