Files
afterwork/lib/presentation/screens/profile/profile_screen.dart
2024-11-08 20:30:23 +00:00

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),
],
),
),
],
),
);
}
}