import 'package:flutter/material.dart'; class ProfileScreen extends StatelessWidget { const ProfileScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Profil'), backgroundColor: Colors.black, actions: [ IconButton( icon: const Icon(Icons.settings), onPressed: () { // Naviguer vers la page des paramètres }, ), ], ), body: CustomScrollView( slivers: [ SliverList( delegate: SliverChildListDelegate([ // Informations de l'Utilisateur _buildUserInfoSection(context), const Divider(), // Options de Modification _buildEditOptions(context), const Divider(), // Statistiques Personnelles _buildStatisticsSection(context), const Divider(), // Historique _buildHistorySection(context), const Divider(), // Préférences et Paramètres _buildPreferencesSection(context), const Divider(), // Autres Fonctions _buildSupportSection(context), const Divider(), // Suppression de Compte _buildAccountDeletionSection(context), ]), ), ], ), ); } Widget _buildUserInfoSection(BuildContext context) { return Column( children: [ const CircleAvatar( radius: 50, backgroundImage: AssetImage('lib/assets/images/profile_picture.png'), // Remplacer par la photo de profil ), const SizedBox(height: 10), const Text( 'Nom Prénom', style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold, color: Colors.white), ), const SizedBox(height: 5), const Text( 'pseudo', style: TextStyle(fontSize: 16, color: Colors.grey), ), const SizedBox(height: 5), const Text( 'email@example.com', style: TextStyle(fontSize: 14, color: Colors.grey), ), ], ); } Widget _buildEditOptions(BuildContext context) { return Column( children: [ ListTile( leading: const Icon(Icons.edit, color: Colors.blueAccent), title: const Text('Éditer le profil'), onTap: () { // Naviguer vers la page d'édition de profil }, ), ListTile( leading: const Icon(Icons.camera_alt, color: Colors.blueAccent), title: const Text('Changer la photo de profil'), onTap: () { // Naviguer vers la page de changement de photo de profil }, ), ListTile( leading: const Icon(Icons.lock, color: Colors.blueAccent), title: const Text('Changer le mot de passe'), onTap: () { // Naviguer vers la page de changement de mot de passe }, ), ], ); } Widget _buildStatisticsSection(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Padding( padding: EdgeInsets.all(16.0), child: Text( 'Statistiques Personnelles', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.white), ), ), ListTile( leading: const Icon(Icons.event, color: Colors.blueAccent), title: const Text('Événements Participés'), trailing: const Text('12'), // Exemple de valeur onTap: () { // Naviguer vers la page des événements participés }, ), ListTile( leading: const Icon(Icons.place, color: Colors.blueAccent), title: const Text('Établissements Visités'), trailing: const Text('8'), // Exemple de valeur onTap: () { // Naviguer vers la page des établissements visités }, ), ListTile( leading: const Icon(Icons.post_add, color: Colors.blueAccent), title: const Text('Publications'), trailing: const Text('24'), // Exemple de valeur onTap: () { // Naviguer vers la page des publications }, ), ListTile( leading: const Icon(Icons.group, color: Colors.blueAccent), title: const Text('Amis/Followers'), trailing: const Text('150'), // Exemple de valeur onTap: () { // Naviguer vers la page des amis ou followers }, ), ], ); } Widget _buildHistorySection(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Padding( padding: EdgeInsets.all(16.0), child: Text( 'Historique', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.white), ), ), ListTile( leading: const Icon(Icons.event_note, color: Colors.blueAccent), title: const Text('Historique des Événements'), onTap: () { // Naviguer vers l'historique des événements }, ), ListTile( leading: const Icon(Icons.history, color: Colors.blueAccent), title: const Text('Historique des Publications'), onTap: () { // Naviguer vers l'historique des publications }, ), ListTile( leading: const Icon(Icons.bookmark, color: Colors.blueAccent), title: const Text('Historique de Réservations'), onTap: () { // Naviguer vers l'historique des réservations }, ), ], ); } Widget _buildPreferencesSection(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Padding( padding: EdgeInsets.all(16.0), child: Text( 'Préférences et Paramètres', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.white), ), ), ListTile( leading: const Icon(Icons.privacy_tip, color: Colors.blueAccent), title: const Text('Paramètres de confidentialité'), onTap: () { // Naviguer vers les paramètres de confidentialité }, ), ListTile( leading: const Icon(Icons.notifications, color: Colors.blueAccent), title: const Text('Notifications'), onTap: () { // Naviguer vers les paramètres de notification }, ), ListTile( leading: const Icon(Icons.language, color: Colors.blueAccent), title: const Text('Langue de l\'application'), onTap: () { // Naviguer vers les paramètres de langue }, ), ListTile( leading: const Icon(Icons.format_paint, color: Colors.blueAccent), title: const Text('Thème de l\'application'), onTap: () { // Naviguer vers les paramètres de thème }, ), ], ); } Widget _buildSupportSection(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Padding( padding: EdgeInsets.all(16.0), child: Text( 'Support et Assistance', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.white), ), ), ListTile( leading: const Icon(Icons.help, color: Colors.blueAccent), title: const Text('Support et Assistance'), onTap: () { // Naviguer vers la page de support }, ), ListTile( leading: const Icon(Icons.article, color: Colors.blueAccent), title: const Text('Conditions d\'utilisation'), onTap: () { // Naviguer vers les conditions d'utilisation }, ), ListTile( leading: const Icon(Icons.privacy_tip, color: Colors.blueAccent), title: const Text('Politique de confidentialité'), onTap: () { // Naviguer vers la politique de confidentialité }, ), ], ); } Widget _buildAccountDeletionSection(BuildContext context) { return ListTile( leading: const Icon(Icons.delete, color: Colors.redAccent), title: const Text( 'Supprimer le compte', style: TextStyle(color: Colors.redAccent), ), onTap: () { // Implémenter la logique de suppression de compte }, ); } }