import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/list/flexible_container.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:flutter/material.dart'; import '../../config/size_config.dart'; import 'drawer_item_widget.dart'; class AppDrawer extends StatefulWidget { @override _AppDrawerState createState() => _AppDrawerState(); } class _AppDrawerState extends State { @override void initState() { super.initState(); checkUserData(); } var sharedPref = new AppSharedPreferences(); AuthenticatedUser user; @override Widget build(BuildContext context) { return SizedBox( width: MediaQuery.of(context).size.width * 0.75, child: Container( color: Colors.white, child: Drawer( child: Column( children: [ Expanded( flex: 4, child: ListView( padding: EdgeInsets.zero, children: [ Container( height: SizeConfig.screenHeight * .30, child: InkWell( child: DrawerHeader( child: Column( children: [ Container( child: Image.asset('assets/images/logo.png'), margin: EdgeInsets.all( SizeConfig.imageSizeMultiplier * 4), ), user != null ? Padding( padding: EdgeInsets.all(15), child: Column(children: [ Row( children: [ Padding( padding: EdgeInsets.only(right: 5), child: Icon( Icons.account_circle, color: Colors.red, )), AppText( user.firstName + ' ' + user.lastName, color: Colors.red, ) ], ), Row(children: [ Padding( padding: EdgeInsets.only( left: 30, top: 5), child: Column( children: [ AppText( 'File No:' + user.patientID .toString(), color: Colors.red, fontSize: SizeConfig .textMultiplier * 1.5, ), AppText( user.bloodGroup != null ? 'Blood Group: ' + user.bloodGroup : '', fontSize: SizeConfig .textMultiplier * 1.5, ), ], )) ]) ])) : SizedBox(), ], ), ), ), ), Column( mainAxisAlignment: MainAxisAlignment.center, children: [ InkWell( child: DrawerItem( TranslationBase.of(context).arabicChange, Icons.translate), onTap: () { Navigator.of(context).pushNamed( WELCOME_LOGIN, ); }, ), user != null ? Column( children: [ InkWell( child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ DrawerItem( TranslationBase.of(context).family, Icons.group, textColor: Colors.red, iconColor: Colors.red, ), Padding( padding: EdgeInsets.only( bottom: 10, right: 30), child: Icon( Icons.chevron_right, color: Colors.red, )) ], ), onTap: () { Navigator.of(context).pushNamed( MY_FAMILIY, ); }, ), InkWell( child: DrawerItem( TranslationBase.of(context) .notification, Icons.notifications), onTap: () { Navigator.of(context).pushNamed( WELCOME_LOGIN, ); }, ), InkWell( child: DrawerItem( TranslationBase.of(context).appsetting, Icons.settings_input_composite), onTap: () { Navigator.of(context).pushNamed( WELCOME_LOGIN, ); }, ), InkWell( child: DrawerItem( TranslationBase.of(context).rateApp, Icons.star), onTap: () { Navigator.of(context).pushNamed( WELCOME_LOGIN, ); }, ), InkWell( child: DrawerItem( TranslationBase.of(context).logout, Icons.lock_open), onTap: () { logout(); }, ) ], ) : InkWell( child: DrawerItem( TranslationBase.of(context).loginregister, Icons.lock_open), onTap: () { login(); }, ), ], ) ], ), ), Expanded( flex: 1, child: Column( children: [ Container( // This align moves the children to the bottom child: Align( alignment: FractionalOffset.bottomCenter, child: Container( child: Column( children: [ Text("Powered by"), Image.asset( 'assets/images/cs_logo_container.png', width: SizeConfig.imageSizeMultiplier * 30, ) ], ), ), ), ) ], ), ) ], ), ), ), ); } drawerNavigator(context, routeName) { Navigator.of(context).pushNamed(routeName); } checkUserData() async { if (await this.sharedPref.getObject(USER_PROFILE) != null) { var data = AuthenticatedUser.fromJson( await this.sharedPref.getObject(USER_PROFILE)); setState(() { this.user = data; print(this.user); }); } } logout() async { // this.sharedPref.remove(USER_PROFILE); // this.sharedPref.remove(IMEI_USER_DATA); // this.sharedPref.remove(TOKEN); // this.sharedPref.remove(LOGIN_TOKEN_ID); await sharedPref.clear(); this.user = null; Navigator.of(context).pushNamed(HOME); } login() async { var data = await sharedPref.getObject(IMEI_USER_DATA); sharedPref.remove(REGISTER_DATA_FOR_LOGIIN); if (data != null) { Navigator.of(context).pushNamed(CONFIRM_LOGIN); } else { Navigator.of(context).pushNamed( WELCOME_LOGIN, ); } } }