This commit is contained in:
Hamza-Ayed
2023-11-27 00:08:10 +03:00
parent a8d6c509c1
commit e095cf564a
19 changed files with 782 additions and 305 deletions

View File

@@ -0,0 +1,102 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/auth/captin/history_captain.dart';
import 'package:ride/views/home/Captin/history/history_details_page.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import 'package:ride/views/widgets/my_scafold.dart';
import 'package:ride/views/widgets/mycircular.dart';
class HistoryCaptain extends StatelessWidget {
const HistoryCaptain({super.key});
@override
Widget build(BuildContext context) {
Get.put(HistoryCaptainController());
return MyScafolld(
title: 'History Page'.tr,
body: [
GetBuilder<HistoryCaptainController>(
builder: (historyCaptainController) => Expanded(
child: historyCaptainController.isloading
? const MyCircularProgressIndicator()
: ListView.builder(
itemCount: historyCaptainController
.historyData['message'].length,
itemBuilder: (BuildContext context, int index) {
var list = historyCaptainController
.historyData['message'][index];
return InkWell(
onTap: () {
list['status'] != 'Cancel'
? historyCaptainController
.getHistoryDetails(list['order_id'])
: Get.defaultDialog(
title: 'This Trip Cancelled'.tr,
middleText: '',
titleStyle: AppStyle.title,
confirm: MyElevatedButton(
title: 'Ok'.tr,
onPressed: () => Get.back()));
},
child: Card(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'OrderID',
style: AppStyle.title,
),
Text(
list['order_id'],
style: AppStyle.subtitle,
),
],
),
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'created_at',
style: AppStyle.title,
),
Text(
list['created_at'],
style: AppStyle.subtitle,
),
],
),
Text(
list['status'],
style: list['status'] == 'Apply'
? AppStyle.title.copyWith(
color: AppColor.greenColor)
: list['status'] == 'Refused'
? AppStyle.title.copyWith(
color: AppColor.redColor)
: AppStyle.title.copyWith(
color:
AppColor.yellowColor),
),
],
),
),
),
);
},
),
))
],
isleading: true,
);
}
}

View File

@@ -0,0 +1,155 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/auth/captin/history_captain.dart';
import 'package:ride/controller/functions/launch.dart';
import 'package:ride/views/widgets/my_scafold.dart';
import '../../../widgets/mycircular.dart';
class HistoryDetailsPage extends StatelessWidget {
HistoryDetailsPage({super.key});
HistoryCaptainController historyCaptainController =
Get.put(HistoryCaptainController());
@override
Widget build(BuildContext context) {
return MyScafolld(
title: 'Trip Detail'.tr,
body: [
GetBuilder<HistoryCaptainController>(
builder: (historyCaptainController) {
var res = historyCaptainController.historyDetailsData['data'];
return Expanded(
child: historyCaptainController.isloading
? const MyCircularProgressIndicator()
: SingleChildScrollView(
child: Column(
children: [
Container(
width: Get.width * .8,
decoration: BoxDecoration(
border: Border.all(
color: AppColor.blueColor, width: 2)),
child: TextButton(
onPressed: () {
String mapUrl =
'https://www.google.com/maps/dir/${res['start_location']}/${res['end_location']}/';
print(mapUrl);
launchUrl1(mapUrl);
},
child: Text(
'Trip on Map Click here'.tr,
style: AppStyle.title,
),
),
),
const SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text(
'Order ID ${res['id']}',
style: AppStyle.title,
),
Text(
res['date'].toString(),
style: AppStyle.title,
),
],
),
const SizedBox(
height: 10,
),
Container(
width: Get.width * .8,
decoration: BoxDecoration(
border: Border.all(
color: AppColor.greenColor, width: 2)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text(
'Price is ${res['price_for_driver']}',
style: AppStyle.title,
),
Text(
'Distance is ${res['distance']} KM',
style: AppStyle.title,
),
],
),
),
const SizedBox(
height: 10,
),
Text(
'Times of Trip'.tr,
style: AppStyle.title,
),
const SizedBox(
height: 10,
),
Container(
width: Get.width * .8,
decoration: BoxDecoration(
border: Border.all(
color: AppColor.redColor, width: 2)),
child: Column(
children: [
Text(
'To Passenger is ${res['DriverIsGoingToPassenger']}',
style: AppStyle.title,
),
Text(
'TimeStart is ${res['rideTimeStart']}',
style: AppStyle.title,
),
Text(
'Time Finish is ${res['rideTimeFinish']}',
style: AppStyle.title,
),
],
),
),
const SizedBox(
height: 10,
),
Container(
width: Get.width * .8,
decoration: BoxDecoration(
border: Border.all(
color: AppColor.greenColor, width: 2)),
child: Center(
child: Text(
'Passenger Name is ${res['first_name']} ${res['last_name']} ',
style: AppStyle.title,
),
),
),
const SizedBox(
height: 10,
),
Container(
width: Get.width * .8,
decoration: BoxDecoration(
border: Border.all(
color: AppColor.yellowColor, width: 2)),
child: Center(
child: Text(
'Status is ${res['status']}',
style: AppStyle.title,
),
),
),
],
),
));
})
],
isleading: true,
);
}
}