import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; import 'package:doctor_app_flutter/screens/reschedule-leaves/add-rescheduleleave.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import '../../config/size_config.dart'; import '../../util/dr_app_shared_pref.dart'; import '../../widgets/shared/drawer_item_widget.dart'; import '../../widgets/shared/rounded_container_widget.dart'; import 'app_texts_widget.dart'; DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); class AppDrawer extends StatefulWidget { @override _AppDrawerState createState() => _AppDrawerState(); } class _AppDrawerState extends State { Helpers helpers = new Helpers(); late ProjectViewModel projectsProvider; @override Widget build(BuildContext context) { AuthenticationViewModel authenticationViewModel = Provider.of(context); projectsProvider = Provider.of(context); double drawerWidth = SizeConfig.realScreenWidth * 0.60; return RoundedContainer( child: Container( color: Colors.white, child: Drawer( child: Column(children: [ Expanded( flex: 4, child: ListView(padding: EdgeInsets.zero, children: [ Container( margin: EdgeInsets.symmetric(horizontal: 15), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Container( child: Image.asset( 'assets/images/dr_app_logo.png', width: SizeConfig.getWidthMultiplier( width: drawerWidth) * (SizeConfig.isHeightVeryShort? 25:SizeConfig.isHeightShort?32: 32), ), margin: EdgeInsets.only(top: SizeConfig.heightMultiplier * (SizeConfig.isHeightVeryShort?1:2), bottom: SizeConfig.heightMultiplier * 0.5), ), Container( child: InkWell( onTap: () { Navigator.pop(context); }, child: Icon( DoctorApp.close_1, size: SizeConfig.heightMultiplier * 2, ), ), margin: EdgeInsets.only(top: SizeConfig.heightMultiplier * (SizeConfig.isHeightVeryShort?2:3), bottom: SizeConfig.heightMultiplier * 0.5), ) ], crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, ), SizedBox(height: SizeConfig.heightMultiplier * (SizeConfig.isHeightVeryShort?0.5:1),), if (authenticationViewModel.doctorProfile != null) InkWell( onTap: () { // TODO: return it back when its needed // Navigator.of(context).pushNamed(PROFILE, arguments: { // 'title': authProvider.doctorProfile.doctorName, // "doctorProfileall": authProvider.doctorProfile // }); }, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: EdgeInsets.only(top: 10), child: AppText( TranslationBase .of(context) .dr ?? "" + authenticationViewModel.doctorProfile!.doctorName!, fontWeight: FontWeight.bold, color: Color(0xFF2E303A), fontFamily: 'Poppins', fontSize: SizeConfig .getTextMultiplierBasedOnWidth( width: drawerWidth) * (SizeConfig.isWidthLarge?5: 8), ), ), Padding( padding: EdgeInsets.only(top: 0), child: AppText( authenticationViewModel.doctorProfile ?.clinicDescription, fontWeight: FontWeight.w600, color: Color(0xFF2E303A), fontSize: SizeConfig .getTextMultiplierBasedOnWidth( width: drawerWidth) * (SizeConfig.isWidthLarge?3: 6), fontFamily: 'Poppins', )) ], ), ), SizedBox(height: SizeConfig.heightMultiplier * (SizeConfig.isHeightVeryShort?4:6),), InkWell( child: DrawerItem( TranslationBase .of(context) .applyOrRescheduleLeave!, icon: DoctorApp.reschedule__1, drawerWidth: drawerWidth, // subTitle: , ), onTap: () { Navigator.pop(context); Navigator.push( context, MaterialPageRoute( builder: (context) => AddRescheduleLeavScreen(), // MyReferredPatient(), )); }, ), SizedBox(height: SizeConfig.heightMultiplier *2), InkWell( child: DrawerItem( TranslationBase .of(context) .myQRCode!, icon: DoctorApp.qr_code_3, drawerWidth: drawerWidth, // subTitle: , ), ), SizedBox(height: SizeConfig.heightMultiplier *1.5), InkWell( child: Container( // height: 80, child: Image.asset('assets/images/qr_code.png', width: SizeConfig.getWidthMultiplier( width: drawerWidth) * (SizeConfig.isHeightVeryShort?25:30), ), ), onTap: () {}, ), ], ), ), SizedBox( height: SizeConfig.heightMultiplier *(SizeConfig.isHeightVeryShort?8:SizeConfig.isHeightShort?10:16), ), Container( margin: EdgeInsets.symmetric(horizontal: 20), child: Column( children: [ InkWell( child: DrawerItem( projectsProvider.isArabic ? TranslationBase .of(context) .lanEnglish ?? "" : TranslationBase .of(context) .lanArabic ?? "", // icon: DoctorApp.qr_code, assetLink: projectsProvider.isArabic ? 'assets/images/usa-flag.png' : 'assets/images/saudi-arabia-flag.png', drawerWidth: drawerWidth, ), onTap: () { if (projectsProvider.isArabic) projectsProvider.changeLanguage('en'); else projectsProvider.changeLanguage('ar'); }, ), SizedBox(height: SizeConfig.heightMultiplier *(SizeConfig.isHeightVeryShort?0.5:1) ), InkWell( child: DrawerItem( TranslationBase .of(context) .logout!, icon: DoctorApp.logout_1, drawerWidth: drawerWidth, ), onTap: () async { Navigator.pop(context); await authenticationViewModel.logout(isFromLogin: false); }, ), ], ), ), ]), ), Expanded( flex: 1, child: Column(children: [ Container( child: Align( alignment: FractionalOffset.bottomCenter, child: Container( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( width: MediaQuery.of(context).size.width * 0.3, child: RichText( text: TextSpan( text: 'Powered by', style: TextStyle( color: Color(0xFF989898), fontWeight: FontWeight.bold, fontSize: SizeConfig .getTextMultiplierBasedOnWidth( width: drawerWidth) * (SizeConfig.isWidthLarge?4: 6), fontFamily: 'Poppins', ), children: [ TextSpan( text: ' Cloud Solutions', style: TextStyle( color: Color(0xFF2E303A), fontSize: SizeConfig .getTextMultiplierBasedOnWidth( width: drawerWidth) * (SizeConfig.isWidthLarge?5: 7), fontFamily: 'Poppins', ), ) ]), ), ), Image.asset( 'assets/images/cs_logo_container.png', width: SizeConfig.imageSizeMultiplier * 20, ) ], )))) ])) ])), ), width: drawerWidth, margin: EdgeInsets.all(0), customCornerRaduis: false, // topRight: 30, // bottomRight: 30, backgroundColor: Colors.white, ); } drawerNavigator(context, routeName) { Navigator.of(context).pushNamed(routeName); } }