Bon checkpoint + Refactoring
This commit is contained in:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user