refactor: Optimisation de la gestion des événements dans le cache et suppression des appels API redondants

This commit is contained in:
ElPoyo
2026-02-18 15:22:14 +01:00
parent bc6d7d4542
commit 506225ac62
4 changed files with 71 additions and 40 deletions

View File

@@ -1,14 +1,12 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:cloud_functions/cloud_functions.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:em2rp/models/event_model.dart';
import 'package:em2rp/models/equipment_model.dart';
import 'package:em2rp/models/container_model.dart';
import 'package:em2rp/providers/equipment_provider.dart';
import 'package:em2rp/providers/container_provider.dart';
import 'package:em2rp/providers/event_provider.dart';
import 'package:em2rp/providers/local_user_provider.dart';
import 'package:em2rp/services/data_service.dart';
import 'package:em2rp/services/api_service.dart';
import 'package:em2rp/services/qr_code_processing_service.dart';
@@ -449,10 +447,17 @@ class _EventPreparationPageState extends State<EventPreparationPage> with Single
// Recharger l'événement depuis le provider
final eventProvider = context.read<EventProvider>();
// Recharger la liste des événements pour rafraîchir les données
final userId = context.read<LocalUserProvider>().uid;
if (userId != null) {
await eventProvider.loadUserEvents(userId, canViewAllEvents: true);
// Recharger uniquement cet événement depuis l'API pour obtenir les dernières données
try {
final result = await _dataService.getEventWithDetails(_currentEvent.id);
final eventData = result['event'] as Map<String, dynamic>;
final updatedEvent = EventModel.fromMap(eventData, eventData['id'] as String);
// Mettre à jour dans le cache
await eventProvider.updateEvent(updatedEvent);
} catch (e) {
DebugLog.error('[EventPreparationPage] Erreur lors du rechargement de l\'événement', e);
}
setState(() => _showSuccessAnimation = true);