Bon checkpoint + Refactoring

This commit is contained in:
DahoudG
2024-11-08 20:30:23 +00:00
parent 19f6efa995
commit 1e888f41e8
21 changed files with 721 additions and 223 deletions

View File

@@ -30,7 +30,11 @@ class FriendsProvider with ChangeNotifier {
/// [userId] : L'identifiant unique de l'utilisateur.
/// [loadMore] : Indique s'il s'agit d'une demande de chargement supplémentaire pour la pagination.
///
/// En cas d'erreur, logue l'exception et gère l'état `isLoading`.
/// Cette méthode :
/// - Vérifie si un chargement est déjà en cours.
/// - Initialise ou poursuit la pagination.
/// - Exclut l'utilisateur lui-même de la liste.
/// - Gère les erreurs et logue chaque étape pour une traçabilité complète.
Future<void> fetchFriends(String userId, {bool loadMore = false}) async {
if (_isLoading) {
_logger.w('[LOG] Chargement déjà en cours, annulation de la nouvelle demande.');
@@ -39,10 +43,10 @@ class FriendsProvider with ChangeNotifier {
_isLoading = true;
notifyListeners();
_logger.i('[LOG] Début du chargement des amis.');
_logger.i('[LOG] Début du chargement des amis pour l\'utilisateur $userId.');
// Réinitialisation uniquement si ce n'est pas un chargement supplémentaire
if (!loadMore) {
// Réinitialisation de la liste et de la pagination si ce n'est pas un chargement supplémentaire
_friendsList = [];
_currentPage = 0;
_hasMore = true;
@@ -57,9 +61,16 @@ class FriendsProvider with ChangeNotifier {
_hasMore = false;
_logger.i('[LOG] Fin de liste atteinte, plus d\'amis à charger.');
} else {
_friendsList.addAll(newFriends);
for (var friend in newFriends) {
if (friend.friendId != userId) {
_friendsList.add(friend);
_logger.i("[LOG] Ajout de l'ami : ID = ${friend.friendId}, Nom = ${friend.friendFirstName} ${friend.friendLastName}");
} else {
_logger.w("[WARN] Exclusion de l'utilisateur lui-même de la liste d'amis : ${friend.friendId}");
}
}
_currentPage++;
_logger.i('[LOG] Amis ajoutés à la liste. Page actuelle : $_currentPage');
_logger.i('[LOG] Page suivante préparée pour le prochain chargement, page actuelle : $_currentPage');
}
} catch (e) {
_logger.e('[ERROR] Erreur lors de la récupération des amis : $e');