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

@@ -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);
}
}

View File

@@ -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;
}
}