You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
4.3 KiB
Dart
130 lines
4.3 KiB
Dart
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<AppDrawer> {
|
|
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: <Widget>[
|
|
Container(
|
|
height: SizeConfig.heightMultiplier * 30,
|
|
child: InkWell(
|
|
child: DrawerHeader(
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: <Widget>[
|
|
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);
|
|
}
|
|
}
|