rd-android-app/lib/widgets/my_drawer.dart
2025-02-06 16:32:23 +05:30

224 lines
7.3 KiB
Dart

// import 'package:cheminova/controller/home_controller.dart';
// import 'package:cheminova/screens/authentication/change_password_screen.dart';
// import 'package:cheminova/screens/authentication/login_screen.dart';
// import 'package:cheminova/screens/home_screen.dart';
// import 'package:flutter/material.dart';
// import 'package:get/get.dart';
//
// import '../screens/authentication/Profile.dart';
//
// class MyDrawer extends StatefulWidget {
// const MyDrawer({super.key});
//
// @override
// State<MyDrawer> createState() => _MyDrawerState();
// }
//
// class _MyDrawerState extends State<MyDrawer> {
// final HomeController _homeController = Get.find();
//
// @override
// Widget build(BuildContext context) {
// return Drawer(
// child: ListView(
// padding: EdgeInsets.zero,
// children: <Widget>[
// SizedBox(
// height: 150,
// child: Obx(() {
// if (_homeController.isLoading.value) {
// return const Center(child: CircularProgressIndicator());
// } else if (_homeController.error.value.isNotEmpty) {
// return Center(child: Text(_homeController.error.value));
// } else {
// final user = _homeController.userProfile.value;
// return user == null ?const SizedBox(): DrawerHeader(
// decoration: const BoxDecoration(
// color: Colors.black87,
// ),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// Text(
// user!.myData!.name ?? "username",
// style: const TextStyle(
// color: Colors.white,
// fontSize: 18,
// ),
// ),
// Text(
// user!.myData!.uniqueId ?? 'Employee ID',
// style: const TextStyle(
// color: Colors.white,
// fontSize: 20,
// ),
// ),
// ],
// ),
// );
// }
// }),
// ),
// ListTile(
// leading: const Icon(Icons.home),
// title: const Text('Home'),
// onTap: () => Get.offAll(() => const HomeScreen()),
// ),
// ListTile(
// leading: const Icon(Icons.account_circle),
// title: const Text('Profile'),
// onTap: () => Get.to(() => const ProfileScreen()),
// ),
// ListTile(
// leading: const Icon(Icons.settings),
// title: const Text('Change Password'),
// onTap: () {
// Get.to(const ChangePasswordScreen());
// },
// ),
// ListTile(
// leading: const Icon(Icons.exit_to_app),
// title: const Text('Logout'),
// onTap: () => Get.offAll(() => const LoginScreen()),
// ),
// SizedBox(
// height: 700,
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: Center(
// child: Text(
// 'App Version 2.0.0',
// style: TextStyle(color: Colors.grey[600], fontSize: 12),
// ),
// ),
// ),
// ),
// ],
// ),
// );
// }
// }
import 'package:cheminova/controller/home_controller.dart';
import 'package:cheminova/screens/authentication/change_password_screen.dart';
import 'package:cheminova/screens/authentication/login_screen.dart';
import 'package:cheminova/screens/home_screen.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:package_info_plus/package_info_plus.dart';
import '../screens/authentication/Profile.dart';
class MyDrawer extends StatefulWidget {
const MyDrawer({super.key});
@override
State<MyDrawer> createState() => _MyDrawerState();
}
class _MyDrawerState extends State<MyDrawer> {
final HomeController _homeController = Get.find();
String _appVersion = '';
@override
void initState() {
super.initState();
_getAppVersion();
}
Future<void> _getAppVersion() async {
PackageInfo packageInfo = await PackageInfo.fromPlatform(
);
setState(() {
_appVersion = packageInfo.version; // 1.0.0
});
}
@override
Widget build(BuildContext context) {
return Drawer(
child: Column(
children: [
SizedBox(
height: 150,
width: double.infinity,
child: Obx(() {
if (_homeController.isLoading.value) {
return const Center(child: CircularProgressIndicator());
} else if (_homeController.error.value.isNotEmpty) {
return Center(child: Text(_homeController.error.value));
} else {
final user = _homeController.userProfile.value;
return user == null
? const SizedBox()
: DrawerHeader(
decoration: const BoxDecoration(
color: Colors.black87,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
user.myData!.name ?? "username",
style: const TextStyle(
color: Colors.white,
fontSize: 18,
),
),
Text(
user.myData!.uniqueId ?? 'Employee ID',
style: const TextStyle(
color: Colors.white,
fontSize: 20,
),
),
],
),
);
}
}),
),
ListTile(
leading: const Icon(Icons.home),
title: const Text('Home'),
onTap: () => Get.offAll(() => const HomeScreen()),
),
ListTile(
leading: const Icon(Icons.account_circle),
title: const Text('Profile'),
onTap: () => Get.to(() => const ProfileScreen()),
),
ListTile(
leading: const Icon(Icons.settings),
title: const Text('Change Password'),
onTap: () {
Get.to(const ChangePasswordScreen());
},
),
ListTile(
leading: const Icon(Icons.exit_to_app),
title: const Text('Logout'),
onTap: () => Get.offAll(() => const LoginScreen()),
),
const Spacer(),
Padding(
padding: const EdgeInsets.all(8.0),
child: Center(
child: Text(
'Version: $_appVersion',
style: TextStyle(color: Colors.grey[600], fontSize: 12),
),
),
),
],
),
);
}
}