223 lines
7.7 KiB
Dart
223 lines
7.7 KiB
Dart
import 'package:SEFER/constant/api_key.dart';
|
|
import 'package:SEFER/constant/links.dart';
|
|
import 'package:SEFER/constant/style.dart';
|
|
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
|
|
import 'package:SEFER/views/notification/available_rides_page.dart';
|
|
import 'package:SEFER/views/widgets/mycircular.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:SEFER/constant/box_name.dart';
|
|
import 'package:SEFER/constant/colors.dart';
|
|
import 'package:SEFER/main.dart';
|
|
import 'package:SEFER/views/auth/captin/logout_captain.dart';
|
|
import 'package:SEFER/views/home/Captin/history/history_captain.dart';
|
|
import 'package:SEFER/views/home/Captin/home_captain/help_captain.dart';
|
|
import 'package:SEFER/views/home/Captin/settings_captain.dart';
|
|
import 'package:SEFER/views/home/my_wallet/walet_captain.dart';
|
|
import 'package:SEFER/views/home/profile/profile_captain.dart';
|
|
import 'package:SEFER/views/notification/notification_captain.dart';
|
|
|
|
import '../../../../controller/functions/upload_image.dart';
|
|
|
|
class DrawerCaptain extends StatelessWidget {
|
|
ImageController imageController = Get.put(ImageController());
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
String writeText(int times) {
|
|
return '*' * times;
|
|
}
|
|
|
|
return Drawer(
|
|
child: ListView(
|
|
children: [
|
|
// Other drawer items
|
|
UserAccountsDrawerHeader(
|
|
decoration: const BoxDecoration(
|
|
color: AppColor.greenColor,
|
|
gradient: LinearGradient(
|
|
colors: [
|
|
AppColor.primaryColor,
|
|
AppColor.secondaryColor,
|
|
],
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
),
|
|
),
|
|
currentAccountPictureSize: const Size.square(100),
|
|
arrowColor: AppColor.deepPurpleAccent,
|
|
accountName: Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 10),
|
|
child: Row(
|
|
children: [
|
|
Text(
|
|
box.read(BoxName.nameDriver).toString(),
|
|
style: AppStyle.title,
|
|
),
|
|
const Spacer(),
|
|
Column(
|
|
children: [
|
|
Text(
|
|
Get.find<HomeCaptainController>().rating.toString(),
|
|
style: AppStyle.number.copyWith(color: Colors.amber),
|
|
),
|
|
Container(
|
|
// width: Get.width * .4,
|
|
padding: const EdgeInsets.symmetric(
|
|
horizontal: 4, vertical: 1),
|
|
color: AppColor.greenColor,
|
|
child: RatingBar.builder(
|
|
initialRating: 5,
|
|
minRating: 1,
|
|
direction: Axis.horizontal,
|
|
itemCount: 5,
|
|
itemSize: 20,
|
|
itemPadding:
|
|
const EdgeInsets.symmetric(horizontal: 2),
|
|
itemBuilder: (context, _) => const Icon(
|
|
Icons.star,
|
|
color: Colors.amber,
|
|
),
|
|
onRatingUpdate: (rating) {}),
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
),
|
|
accountEmail: Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 10),
|
|
child: Text(
|
|
box.read(BoxName.emailDriver),
|
|
style: AppStyle.title,
|
|
),
|
|
),
|
|
currentAccountPicture: Stack(
|
|
children: [
|
|
GetBuilder<ImageController>(builder: (imageController) {
|
|
return imageController.isloading
|
|
? const MyCircularProgressIndicator()
|
|
: CircleAvatar(
|
|
radius: 45,
|
|
backgroundImage: NetworkImage(
|
|
'${AK.serverPHP}/portrate_captain_image/${box.read(BoxName.driverID)}.jpg'),
|
|
);
|
|
}),
|
|
Positioned(
|
|
right: 0,
|
|
top: 0,
|
|
child: IconButton(
|
|
onPressed: () {
|
|
imageController.choosImage(
|
|
AppLink.uploadImage1, 'portrait');
|
|
},
|
|
icon: const Icon(Icons.edit),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
|
|
ListTile(
|
|
leading: const Icon(Icons.account_balance_wallet),
|
|
title: Text(
|
|
'Wallet'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
// Handle wallet item tap
|
|
Get.to(() => WalletCaptain(), transition: Transition.native);
|
|
},
|
|
),
|
|
ListTile(
|
|
leading: const Icon(Icons.person),
|
|
title: Text(
|
|
'Profile'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
// Handle profile item tap
|
|
Get.to(() => const ProfileCaptain(),
|
|
transition: Transition.rightToLeftWithFade);
|
|
},
|
|
),
|
|
ListTile(
|
|
leading: const Icon(
|
|
Icons.history,
|
|
),
|
|
title: Text(
|
|
'History of Trip'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
Get.to(() => const HistoryCaptain(),
|
|
transition: Transition.downToUp);
|
|
// Handle history of trip item tap
|
|
},
|
|
),
|
|
ListTile(
|
|
leading: const Icon(Icons.phonelink_ring_rounded),
|
|
title: Text(
|
|
'Available for rides'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
Get.to(() => const AvailableRidesPage(),
|
|
transition: Transition.rightToLeftWithFade);
|
|
// Handle history of trip item tap
|
|
},
|
|
),
|
|
ListTile(
|
|
leading: const Icon(Icons.notifications),
|
|
title: Text(
|
|
'Notifications'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
// Handle notifications item tap
|
|
Get.to(() => const NotificationCaptain(),
|
|
transition: Transition.upToDown);
|
|
},
|
|
),
|
|
ListTile(
|
|
leading: const Icon(Icons.help),
|
|
title: Text(
|
|
'Helping Center'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
// Handle helping center item tap
|
|
Get.to(() => HelpCaptain(), transition: Transition.size);
|
|
},
|
|
),
|
|
ListTile(
|
|
leading: const Icon(Icons.settings),
|
|
title: Text(
|
|
'Settings'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
// Handle settings item tap
|
|
Get.to(() => const SettingsCaptain(),
|
|
transition: Transition.cupertino);
|
|
},
|
|
),
|
|
ListTile(
|
|
leading: const Icon(Icons.exit_to_app),
|
|
title: Text(
|
|
'Sign Out'.tr,
|
|
style: AppStyle.title,
|
|
),
|
|
onTap: () {
|
|
// Handle sign out item tap
|
|
Get.to(() => const LogoutCaptain(),
|
|
transition: Transition.cupertinoDialog);
|
|
},
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|