import 'package:base_project/utils/image_constant.dart'; import 'package:base_project/commans/widgets/custome_drawe_item.dart'; import 'package:base_project/resources/app_colors.dart'; import 'package:base_project/routes/route_names.dart'; import 'package:base_project/utils/managers/user_manager.dart'; import 'package:base_project/view_model/profile/profile_view_model.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:provider/provider.dart'; class MyCustomDrawer extends StatelessWidget { const MyCustomDrawer({super.key}); @override Widget build(BuildContext context) { final email = UserManager().email; final userName = UserManager().userName; final provider = Provider.of(context, listen: false); return Drawer( child: ListView( padding: EdgeInsets.zero, children: [ UserAccountsDrawerHeader( decoration: const BoxDecoration( color: AppColors.primary, ), currentAccountPicture: CircleAvatar( radius: 60, backgroundColor: AppColors.primary.withOpacity(0.3), backgroundImage: provider.profileImageBytes != null ? MemoryImage(provider.profileImageBytes!) : null, child: provider.profileImageBytes != null ? null // Use backgroundImage for the actual image, so child should be null : SvgPicture.asset( ImageConstant.userProfileImg, // Placeholder SVG asset // AppImages.userProfileImg, // Placeholder SVG asset width: 60, // Adjust to fit the CircleAvatar height: 60, ), ), accountName: Text("Hello, $userName"), accountEmail: Text(email.toString()), ), DrawerItem( color: AppColors.primary, icon: Icons.person, title: 'Profile', onTap: () { Navigator.pushNamed(context, RouteNames.profileView); }, ), DrawerItem( color: AppColors.primary, icon: Icons.system_security_update, title: 'System Parameters', onTap: () { // Add navigation or other logic here Navigator.pushNamed(context, RouteNames.systemParamsView); }, ), DrawerItem( color: AppColors.primary, icon: Icons.password, title: 'change password', onTap: () { Navigator.pushNamed(context, RouteNames.changePasswordView); }, ), // NEW MENU DrawerItem( icon: Icons.logout, color: Colors.red, title: 'Logout', onTap: () async { await UserManager().clearUser(); Navigator.pushReplacementNamed(context, RouteNames.splashView); }, ), ], ), ); } }