feat: Refactor group deletion logic to use tripId and add reset trips functionality
This commit is contained in:
@@ -17,15 +17,13 @@ class TripBloc extends Bloc<TripEvent, TripState> {
|
||||
on<TripUpdateRequested>(_onTripUpdateRequested);
|
||||
on<TripDeleteRequested>(_onTripDeleteRequested);
|
||||
on<_TripsUpdated>(_onTripsUpdated);
|
||||
on<ResetTrips>(_onResetTrips);
|
||||
}
|
||||
|
||||
Future<void> _onLoadTripsByUserId(
|
||||
LoadTripsByUserId event,
|
||||
Emitter<TripState> emit,
|
||||
) async {
|
||||
print('🔍 Chargement des trips pour userId: ${event.userId}');
|
||||
|
||||
// MODIFIÉ : Toujours émettre Loading pour forcer le rechargement
|
||||
emit(TripLoading());
|
||||
|
||||
_currentUserId = event.userId;
|
||||
@@ -33,11 +31,9 @@ class TripBloc extends Bloc<TripEvent, TripState> {
|
||||
|
||||
_tripsSubscription = _repository.getTripsByUserId(event.userId).listen(
|
||||
(trips) {
|
||||
print('📦 Stream reçu: ${trips.length} trips');
|
||||
add(_TripsUpdated(trips));
|
||||
},
|
||||
onError: (error) {
|
||||
print('❌ Erreur stream: $error');
|
||||
emit(TripError(error.toString()));
|
||||
},
|
||||
);
|
||||
@@ -47,7 +43,6 @@ class TripBloc extends Bloc<TripEvent, TripState> {
|
||||
_TripsUpdated event,
|
||||
Emitter<TripState> emit,
|
||||
) {
|
||||
print('✅ Émission de TripLoaded avec ${event.trips.length} trips');
|
||||
emit(TripLoaded(event.trips));
|
||||
}
|
||||
|
||||
@@ -56,24 +51,18 @@ class TripBloc extends Bloc<TripEvent, TripState> {
|
||||
Emitter<TripState> emit,
|
||||
) async {
|
||||
try {
|
||||
print('📝 Création du voyage: ${event.trip.title}');
|
||||
emit(TripLoading());
|
||||
|
||||
final tripId = await _repository.createTrip(event.trip);
|
||||
print('✅ Voyage créé avec ID: $tripId');
|
||||
|
||||
// Émettre TripCreated pour que create_trip_content puisse créer le groupe
|
||||
emit(TripCreated(tripId: tripId));
|
||||
|
||||
// AJOUTÉ : Attendre un peu puis recharger manuellement
|
||||
await Future.delayed(const Duration(milliseconds: 800));
|
||||
if (_currentUserId != null) {
|
||||
print('🔄 Rechargement forcé après création');
|
||||
add(LoadTripsByUserId(userId: _currentUserId!));
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
print('❌ Erreur création: $e');
|
||||
emit(TripError('Erreur lors de la création: $e'));
|
||||
}
|
||||
}
|
||||
@@ -83,22 +72,14 @@ class TripBloc extends Bloc<TripEvent, TripState> {
|
||||
Emitter<TripState> emit,
|
||||
) async {
|
||||
try {
|
||||
print('📝 Mise à jour du voyage: ${event.trip.title}');
|
||||
|
||||
await _repository.updateTrip(event.trip.id!, event.trip);
|
||||
print('✅ Voyage mis à jour');
|
||||
|
||||
emit(const TripOperationSuccess('Voyage mis à jour avec succès'));
|
||||
|
||||
// AJOUTÉ : Recharger après mise à jour
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
if (_currentUserId != null) {
|
||||
print('🔄 Rechargement forcé après mise à jour');
|
||||
add(LoadTripsByUserId(userId: _currentUserId!));
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
print('❌ Erreur mise à jour: $e');
|
||||
emit(TripError('Erreur lors de la mise à jour: $e'));
|
||||
}
|
||||
}
|
||||
@@ -108,26 +89,29 @@ class TripBloc extends Bloc<TripEvent, TripState> {
|
||||
Emitter<TripState> emit,
|
||||
) async {
|
||||
try {
|
||||
print('🗑️ Suppression du voyage: ${event.tripId}');
|
||||
|
||||
await _repository.deleteTrip(event.tripId);
|
||||
print('✅ Voyage supprimé');
|
||||
|
||||
emit(const TripOperationSuccess('Voyage supprimé avec succès'));
|
||||
|
||||
// AJOUTÉ : Recharger après suppression
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
if (_currentUserId != null) {
|
||||
print('🔄 Rechargement forcé après suppression');
|
||||
add(LoadTripsByUserId(userId: _currentUserId!));
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
print('❌ Erreur suppression: $e');
|
||||
emit(TripError('Erreur lors de la suppression: $e'));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onResetTrips(
|
||||
ResetTrips event,
|
||||
Emitter<TripState> emit,
|
||||
) async {
|
||||
await _tripsSubscription?.cancel();
|
||||
_currentUserId = null;
|
||||
emit(TripInitial());
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> close() {
|
||||
_tripsSubscription?.cancel();
|
||||
|
||||
@@ -35,6 +35,10 @@ class TripUpdateRequested extends TripEvent {
|
||||
List<Object?> get props => [trip];
|
||||
}
|
||||
|
||||
class ResetTrips extends TripEvent {
|
||||
const ResetTrips();
|
||||
}
|
||||
|
||||
class TripDeleteRequested extends TripEvent {
|
||||
final String tripId;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user