feat: Enhance trip end dialog to check trip creator and prompt accordingly

This commit is contained in:
Van Leemput Dayron
2026-03-20 10:37:04 +01:00
parent d305364328
commit 7ed90db7a8

View File

@@ -269,18 +269,45 @@ class _HomeContentState extends State<HomeContent>
/// Vérifie les voyages terminés et affiche le dialog de suppression si besoin.
Future<void> _checkFinishedTrips(List<Trip> trips) async {
final userState = context.read<UserBloc>().state;
if (userState is! UserLoaded) return;
final currentUserId = userState.user.id;
final finished = await _tripEndService.getFinishedTripsNotYetPrompted(trips);
for (final trip in finished) {
if (!mounted) return;
await _showTripEndDialog(trip);
await _showTripEndDialog(trip, currentUserId);
}
}
/// Affiche le dialog demandant si l'utilisateur veut supprimer le voyage terminé.
Future<void> _showTripEndDialog(Trip trip) async {
Future<void> _showTripEndDialog(Trip trip, String currentUserId) async {
final tripId = trip.id!;
await _tripEndService.markTripAsPrompted(tripId);
final isCreator = trip.createdBy == currentUserId;
// Si l'utilisateur n'est pas le créateur, afficher uniquement une info
if (!isCreator) {
if (!mounted) return;
await showDialog<void>(
context: context,
builder: (ctx) => AlertDialog(
title: const Text('Voyage terminé'),
content: Text(
'Le voyage "${trip.title}" est terminé. Seul le créateur du voyage peut le supprimer.',
),
actions: [
TextButton(
onPressed: () => Navigator.pop(ctx),
child: const Text('OK'),
),
],
),
);
return;
}
final settled = await _tripEndService.areAccountsSettled(tripId);
if (!mounted) return;