feat: Add full-screen receipt viewer, display trip participants in calendar, and restrict trip management options to creator.

This commit is contained in:
Van Leemput Dayron
2025-12-04 14:25:27 +01:00
parent e174c1274d
commit 9f2bfcaa55
6 changed files with 296 additions and 42 deletions

View File

@@ -0,0 +1,59 @@
void _showParticipantsDialog(BuildContext context) {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text('Participants'),
content: SizedBox(
width: double.maxFinite,
child: FutureBuilder<List<User>>(
future: UserRepository().getUsersByIds([
...widget.trip.participants,
widget.trip.createdBy,
]),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());
}
if (snapshot.hasError) {
return const Center(child: Text('Erreur de chargement'));
}
final users = snapshot.data ?? [];
if (users.isEmpty) {
return const Center(child: Text('Aucun participant trouvé'));
}
return ListView.builder(
shrinkWrap: true,
itemCount: users.length,
itemBuilder: (context, index) {
final user = users[index];
final isCreator = user.id == widget.trip.createdBy;
return ListTile(
leading: CircleAvatar(
backgroundImage: user.photoUrl != null
? NetworkImage(user.photoUrl!)
: null,
child: user.photoUrl == null
? Text(user.initials)
: null,
),
title: Text(user.fullName),
subtitle: isCreator ? const Text('Organisateur') : null,
);
},
);
},
),
),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: const Text('Fermer'),
),
],
),
);
}