import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../config/shared_pref_kay.dart'; import '../../config/size_config.dart'; import '../../providers/schedule_provider.dart'; import '../../routes.dart'; import '../../screens/doctor/my_schedule_screen.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'; import 'package:doctor_app_flutter/models/doctor_profile_model.dart'; DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); // OWNER : Ibrahim albitar // DATE : 06-04-2020 // DESCRIPTION : Custom App Drawer for app. class AppDrawer extends StatefulWidget { @override _AppDrawerState createState() => _AppDrawerState(); } class _AppDrawerState extends State { bool _isInit = true; DoctorProfileModel doctorProfile; @override void didChangeDependencies() { super.didChangeDependencies(); // if (_isInit) { getDocProfile();// TODO: Refactor this code to prevent errors in the cosole. // } _isInit = false; } getDocProfile() async { Map profile = await sharedPref.getObj(DOCTOR_PROFILE); // doctorProfile = DoctorProfileModel.fromJson(profile); setState(() { doctorProfile = DoctorProfileModel.fromJson(profile); }); String token = await sharedPref.getString(TOKEN); } @override Widget build(BuildContext context) { // var x = getDocProfile(); return RoundedContainer( child: Container( margin: EdgeInsets.only(top: SizeConfig.heightMultiplier * 9), child: Drawer( child: ListView(padding: EdgeInsets.zero, children: [ Container( height: SizeConfig.heightMultiplier * 30, child: InkWell( child: DrawerHeader( child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ CircleAvatar( radius: SizeConfig.imageSizeMultiplier * 12, backgroundImage: NetworkImage(doctorProfile.doctorImageURL), backgroundColor: Colors.transparent, ), Padding( padding: EdgeInsets.only(top: 10), child: AppText( doctorProfile.doctorName, fontWeight: FontWeight.bold, color: Colors.white, fontSize: SizeConfig.textMultiplier * 2, )), AppText("Director of medical records",//TODO: Make The Dr Title Dynamic and check overflow issue. fontWeight: FontWeight.normal, color: Colors.white) ], ), ), onTap: () { //Navigator.of(context).pushNamed(PROFILE); Navigator.of(context).pushNamed(PROFILE, arguments: {'title':doctorProfile.doctorName, "doctorProfileall": doctorProfile }); }, ), ), InkWell( child: DrawerItem("Settings", Icons.settings), onTap: () { Navigator.pop(context); Navigator.of(context).pushNamed(SETTINGS); }, ), InkWell( child: DrawerItem("QR Reader", Icons.search), onTap: () { Navigator.pop(context); Navigator.of(context).pushNamed(QR_READER); }, ), InkWell( child: DrawerItem("lOGOUT", Icons.exit_to_app), onTap: () async { await Helpers.clearSharedPref(); Navigator.pop(context); Navigator.of(context).pushNamed(LOGIN); }, ), ])), ), width: SizeConfig.realScreenWidth * 0.55, margin: 0, customCornerRaduis: true, topRight: 30, bottomRight: 30, backgroundColor: Color(0xff58434F), ); } drawerNavigator(context, routeName) { Navigator.of(context).pushNamed(routeName); } }