From 611c95d73b7f5f9d8ba6c8779d12d0bbdb808953 Mon Sep 17 00:00:00 2001 From: "PC-PAUL\\paulf" Date: Thu, 6 Mar 2025 11:13:05 +0100 Subject: [PATCH] Modif user provider, ajout photo de profil --- em2rp/lib/providers/user_provider.dart | 31 +++++++------------ em2rp/lib/views/login_page.dart | 2 +- .../views/widgets/image/big_image_left.dart | 4 +-- em2rp/lib/views/widgets/nav/main_drawer.dart | 25 ++++++++------- 4 files changed, 27 insertions(+), 35 deletions(-) diff --git a/em2rp/lib/providers/user_provider.dart b/em2rp/lib/providers/user_provider.dart index 7504aa9..655bf87 100644 --- a/em2rp/lib/providers/user_provider.dart +++ b/em2rp/lib/providers/user_provider.dart @@ -5,38 +5,29 @@ class UserProvider extends ChangeNotifier { String? _firstName; String? _lastName; String? _role; - // String? _profilePictureUrl; + String? _profilePictureUrl; String? _email; - // String? _phoneNumber; + String? _phoneNumber; String? get uid => _uid; String? get firstName => _firstName; String? get lastName => _lastName; String? get role => _role; - // String? get profilePhotoUrl => _profilePictureUrl; + String? get profilePhotoUrl => _profilePictureUrl; String? get email => _email; - // String? get phoneNumber => _phoneNumber; + String? get phoneNumber => _phoneNumber; - // void setUserData(Map userData, String uid) { - // _uid = uid; - // _firstName = userData['firstName']; - // _lastName = userData['lastName']; - // _role = userData['role'] ?? 'USER'; // Default role if not provided - // // _profilePictureUrl = userData['profilePhotoUrl']; - // _email = userData['email']; - // // _phoneNumber = userData['phoneNumber']; - // notifyListeners(); // Notify listeners that state has changed - // } void setUserData(Map userData, String uid) { _uid = uid; _firstName = userData['firstName']; _lastName = userData['lastName']; _role = userData['role'] ?? 'USER'; // Default role if not provided + if (userData['profilePhotoUrl'] != "") { + _profilePictureUrl = userData['profilePhotoUrl']; + } _email = userData['email']; - - print("User data set: $_firstName $_lastName ($_email)"); - - notifyListeners(); + _phoneNumber = userData['phoneNumber']; + notifyListeners(); // Notify listeners that state has changed } void clearUserData() { @@ -44,9 +35,9 @@ class UserProvider extends ChangeNotifier { _firstName = null; _lastName = null; _role = null; - // _profilePictureUrl = null; + _profilePictureUrl = null; _email = null; - // _phoneNumber = null; + _phoneNumber = null; notifyListeners(); } } diff --git a/em2rp/lib/views/login_page.dart b/em2rp/lib/views/login_page.dart index 9615d2d..86c95fc 100644 --- a/em2rp/lib/views/login_page.dart +++ b/em2rp/lib/views/login_page.dart @@ -124,7 +124,7 @@ class _LoginPageState extends State { children: [ Expanded( flex: 6, - child: const ImageSectionWidget(), // Affiche l'image de gauche + child: const BigLeftImageWidget(), ), Expanded( flex: 4, diff --git a/em2rp/lib/views/widgets/image/big_image_left.dart b/em2rp/lib/views/widgets/image/big_image_left.dart index eaf634d..0e450db 100644 --- a/em2rp/lib/views/widgets/image/big_image_left.dart +++ b/em2rp/lib/views/widgets/image/big_image_left.dart @@ -1,8 +1,8 @@ import 'package:em2rp/utils/colors.dart'; import 'package:flutter/material.dart'; -class ImageSectionWidget extends StatelessWidget { - const ImageSectionWidget({super.key}); +class BigLeftImageWidget extends StatelessWidget { + const BigLeftImageWidget({super.key}); @override Widget build(BuildContext context) { diff --git a/em2rp/lib/views/widgets/nav/main_drawer.dart b/em2rp/lib/views/widgets/nav/main_drawer.dart index 76c9234..101e9fc 100644 --- a/em2rp/lib/views/widgets/nav/main_drawer.dart +++ b/em2rp/lib/views/widgets/nav/main_drawer.dart @@ -1,10 +1,9 @@ -import 'package:em2rp/providers/user_provider.dart'; // Import UserProvider +import 'package:em2rp/providers/user_provider.dart'; import 'package:em2rp/utils/colors.dart'; import 'package:em2rp/views/calendar_page.dart'; import 'package:em2rp/views/my_account_page.dart'; import 'package:em2rp/views/user_management_page.dart'; import 'package:flutter/material.dart'; -// Import Provider class MainDrawer extends StatelessWidget { final String currentPage; @@ -20,7 +19,7 @@ class MainDrawer extends StatelessWidget { padding: EdgeInsets.zero, children: [ DrawerHeader( - // Header du drawer amélioré + // Header du drawer decoration: BoxDecoration( image: DecorationImage( image: AssetImage('assets/EM2_NsurB.jpg'), @@ -36,16 +35,19 @@ class MainDrawer extends StatelessWidget { alignment: Alignment.bottomLeft, child: Column( // Use Column to arrange logo and user name - crossAxisAlignment: - CrossAxisAlignment.start, // Align text to the left - mainAxisAlignment: - MainAxisAlignment.end, // Align content to the bottom + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.end, children: [ - Image.asset('assets/EM2_NsurB.jpg', - height: 50), // Smaller logo in header + CircleAvatar( + radius: 25, + backgroundImage: NetworkImage( + userProvider.profilePhotoUrl ?? + 'https://firebasestorage.googleapis.com/v0/b/em2rp-951dc/o/EM2_NsurB.jpg?alt=media&token=530479c3-5f8c-413b-86a2-53ec4a4ed734', //TODO: Remplacer par logo EM2 + ), + ), const SizedBox(height: 8), Text( - 'Bonjour, ${userProvider.firstName ?? 'Erreur'}', // Display user's first name from provider + 'Bonjour, ${userProvider.firstName ?? 'Erreur'}', style: TextStyle( color: AppColors.blanc, fontSize: 18, @@ -107,7 +109,7 @@ class MainDrawer extends StatelessWidget { title: const Text('Gestion des Utilisateurs'), selected: currentPage == '/user_management', // Check if current page is UserManagementPage - selectedColor: AppColors.rouge, // Color when selected + selectedColor: AppColors.rouge, onTap: () { Navigator.pop(context); // Ferme le drawer Navigator.pushReplacement( @@ -121,7 +123,6 @@ class MainDrawer extends StatelessWidget { ], ), ), - // Tu peux ajouter d'autres liens ici si besoin ], ), );