97 lines
3.7 KiB
Dart
97 lines
3.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
import '../../../core/constants/colors.dart';
|
|
import '../../../data/providers/user_provider.dart';
|
|
import '../../widgets/account_deletion_card.dart';
|
|
import '../../widgets/custom_list_tile.dart';
|
|
import '../../widgets/edit_options_card.dart';
|
|
import '../../widgets/expandable_section_card.dart';
|
|
import '../../widgets/profile_header.dart';
|
|
import '../../widgets/statistics_section_card.dart';
|
|
import '../../widgets/support_section_card.dart';
|
|
import '../../widgets/user_info_card.dart';
|
|
|
|
class ProfileScreen extends StatelessWidget {
|
|
const ProfileScreen({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final userProvider = Provider.of<UserProvider>(context);
|
|
final user = userProvider.user;
|
|
|
|
return Scaffold(
|
|
backgroundColor: AppColors.backgroundColor,
|
|
body: CustomScrollView(
|
|
slivers: [
|
|
ProfileHeader(user: user),
|
|
SliverList(
|
|
delegate: SliverChildListDelegate(
|
|
[
|
|
const SizedBox(height: 10),
|
|
UserInfoCard(user: user),
|
|
const SizedBox(height: 10),
|
|
const EditOptionsCard(),
|
|
const SizedBox(height: 10),
|
|
StatisticsSectionCard(user: user),
|
|
const SizedBox(height: 10),
|
|
ExpandableSectionCard(
|
|
title: 'Historique',
|
|
icon: Icons.history,
|
|
children: [
|
|
CustomListTile(
|
|
icon: Icons.event_note,
|
|
label: 'Historique des Événements',
|
|
onTap: () => print("[LOG] Accès à l'historique des événements."),
|
|
),
|
|
CustomListTile(
|
|
icon: Icons.history,
|
|
label: 'Historique des Publications',
|
|
onTap: () => print("[LOG] Accès à l'historique des publications."),
|
|
),
|
|
CustomListTile(
|
|
icon: Icons.bookmark,
|
|
label: 'Historique de Réservations',
|
|
onTap: () => print("[LOG] Accès à l'historique des réservations."),
|
|
),
|
|
],
|
|
),
|
|
const SizedBox(height: 10),
|
|
ExpandableSectionCard(
|
|
title: 'Préférences et Paramètres',
|
|
icon: Icons.settings,
|
|
children: [
|
|
CustomListTile(
|
|
icon: Icons.privacy_tip,
|
|
label: 'Paramètres de confidentialité',
|
|
onTap: () => print("[LOG] Accès aux paramètres de confidentialité."),
|
|
),
|
|
CustomListTile(
|
|
icon: Icons.notifications,
|
|
label: 'Notifications',
|
|
onTap: () => print("[LOG] Accès aux paramètres de notifications."),
|
|
),
|
|
CustomListTile(
|
|
icon: Icons.language,
|
|
label: 'Langue de l\'application',
|
|
onTap: () => print("[LOG] Accès aux paramètres de langue."),
|
|
),
|
|
CustomListTile(
|
|
icon: Icons.format_paint,
|
|
label: 'Thème de l\'application',
|
|
onTap: () => print("[LOG] Accès aux paramètres de thème."),
|
|
),
|
|
],
|
|
),
|
|
const SizedBox(height: 10),
|
|
const SupportSectionCard(),
|
|
const SizedBox(height: 10),
|
|
AccountDeletionCard(context: context),
|
|
],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|