Update: 2026-06-11 18:22:57

This commit is contained in:
Hamza-Ayed
2026-06-11 18:22:59 +03:00
parent c5170a88d2
commit 727068b668
629 changed files with 46050 additions and 46109 deletions

572
bottomsheet.diff Normal file
View File

@@ -0,0 +1,572 @@
commit d8901e1a879f696e512e13d389d666baae33dc84
Author: Hamza-Ayed <hamzaayedflutter@gmail.com>
Date: Tue Jun 9 08:40:31 2026 +0300
first commit
diff --git a/siro_rider/lib/views/home/map_widget.dart/buttom_sheet_map_show.dart b/siro_rider/lib/views/home/map_widget.dart/buttom_sheet_map_show.dart
new file mode 100644
index 0000000..c3dee90
--- /dev/null
+++ b/siro_rider/lib/views/home/map_widget.dart/buttom_sheet_map_show.dart
@@ -0,0 +1,560 @@
+import 'package:flutter/material.dart';
+import 'package:get/get.dart';
+import 'package:siro_rider/controller/payment/payment_controller.dart';
+
+import '../../../constant/style.dart';
+import '../../../controller/home/map/ride_lifecycle_controller.dart';
+
+GetBuilder<RideLifecycleController> buttomSheetMapPage() {
+ Get.put(PaymentController());
+ return GetBuilder<RideLifecycleController>(
+ builder: (controller) =>
+ controller.isBottomSheetShown && controller.rideConfirm == false
+ ? const Positioned(
+ left: 5,
+ bottom: 0,
+ right: 5,
+ child: Column(
+ // children: [
+ // Row(
+ // mainAxisAlignment: MainAxisAlignment.end,
+ // children: [
+ // double.parse(box.read(BoxName.passengerWalletTotal)) <
+ // 0 &&
+ // controller.data.isNotEmpty
+ // ? Container(
+ // decoration: AppStyle.boxDecoration
+ // .copyWith(color: AppColor.redColor),
+ // height: 50,
+ // width: Get.width * .94,
+ // child: Padding(
+ // padding:
+ // const EdgeInsets.symmetric(horizontal: 8),
+ // child: Text(
+ // 'Your trip cost is'.tr +
+ // ' ${controller.totalCostPassenger.toStringAsFixed(2)} '
+ // 'But you have a negative salary of'
+ // .tr +
+ // '${double.parse(box.read(BoxName.passengerWalletTotal)).toStringAsFixed(2)}'
+ // ' in your'
+ // .tr +
+ // ' ${AppInformation.appName}'
+ // ' wallet due to a previous trip.'
+ // .tr,
+ // style: AppStyle.subtitle,
+ // ),
+ // ))
+ // : const SizedBox(),
+ // ],
+ // ),
+ // const SizedBox(
+ // height: 5,
+ // ),
+ // AnimatedContainer(
+ // // clipBehavior: Clip.antiAliasWithSaveLayer,
+ // curve: Curves.easeInCirc,
+ // onEnd: () {
+ // controller.height = 250;
+ // },
+ // height: controller.heightBottomSheetShown,
+ // duration: const Duration(seconds: 2),
+ // child: Column(
+ // children: [
+ // controller.data.isEmpty
+ // ? const SizedBox()
+ // : Container(
+ // // width: Get.width * .9,
+ // height: 100,
+ // decoration: BoxDecoration(
+ // color: AppColor.secondaryColor,
+ // boxShadow: [
+ // const BoxShadow(
+ // color: AppColor.accentColor,
+ // offset: Offset(2, 2)),
+ // BoxShadow(
+ // color: AppColor.accentColor
+ // .withOpacity(.4),
+ // offset: const Offset(-2, -2))
+ // ],
+ // borderRadius: const BorderRadius.all(
+ // Radius.circular(15))),
+ // child: ListView.builder(
+ // scrollDirection: Axis.horizontal,
+ // itemCount: controller
+ // .dataCarsLocationByPassenger.length -
+ // 1,
+ // itemBuilder:
+ // (BuildContext context, int index) {
+ // return Container(
+ // color: controller.gender == 'Female'
+ // ? const Color.fromARGB(
+ // 255, 246, 52, 181)
+ // : AppColor.secondaryColor,
+ // width: Get.width,
+ // child: Row(
+ // mainAxisAlignment:
+ // MainAxisAlignment.spaceBetween,
+ // children: [
+ // SizedBox(
+ // width: Get.width * .15,
+ // child: Padding(
+ // padding:
+ // const EdgeInsets.all(8.0),
+ // child: Image.asset(
+ // 'assets/images/jeep.png',
+ // width: 50,
+ // fit: BoxFit.fill,
+ // repeat: ImageRepeat.repeatX,
+ // ),
+ // ),
+ // ),
+ // SizedBox(
+ // width: Get.width * .55,
+ // child: Column(
+ // crossAxisAlignment:
+ // CrossAxisAlignment.start,
+ // mainAxisAlignment:
+ // MainAxisAlignment.spaceEvenly,
+ // children: [
+ // Text(
+ // controller.hours > 0
+ // ? '${'Your Ride Duration is '.tr}${controller.hours} ${'H and'.tr} ${controller.minutes} ${'m'.tr}'
+ // : '${'Your Ride Duration is '.tr} ${controller.minutes} m',
+ // style: AppStyle.subtitle,
+ // ),
+ // // Text(
+ // // '${'You will be thier in'.tr} ${DateFormat('h:mm a').format(controller.newTime)}',
+ // // style: AppStyle.subtitle,
+ // // ),
+ // Text(
+ // '${'Your trip distance is'.tr} ${controller.distance.toStringAsFixed(2)} ${'KM'.tr}',
+ // style: AppStyle.subtitle,
+ // )
+ // ],
+ // ),
+ // ),
+ // SizedBox(
+ // width: Get.width * .2,
+ // child: Padding(
+ // padding: const EdgeInsets.only(
+ // right: 5, left: 5),
+ // child: Column(
+ // crossAxisAlignment:
+ // CrossAxisAlignment.center,
+ // children: [
+ // Container(
+ // width: Get.width * .14,
+ // height: Get.height * .06,
+ // decoration: BoxDecoration(
+ // color: AppColor
+ // .secondaryColor,
+ // shape:
+ // BoxShape.rectangle,
+ // border: Border.all(
+ // width: 2,
+ // color: AppColor
+ // .greenColor)),
+ // child: Center(
+ // child: Text(
+ // '${'Fee is'.tr} \n${controller.totalPassenger.toStringAsFixed(2)}',
+ // style:
+ // AppStyle.subtitle,
+ // ),
+ // ),
+ // ),
+ // controller.promoTaken
+ // ? const Icon(
+ // Icons
+ // .filter_vintage_rounded,
+ // color:
+ // AppColor.redColor,
+ // )
+ // : const SizedBox(
+ // height: 0,
+ // )
+ // ],
+ // ),
+ // ),
+ // ),
+ // ],
+ // ),
+ // );
+ // },
+ // ),
+ // ),
+ // const SizedBox(
+ // height: 5,
+ // ),
+ // Container(
+ // // height: 130,
+ // decoration: BoxDecoration(
+ // color: AppColor.secondaryColor,
+ // boxShadow: [
+ // const BoxShadow(
+ // color: AppColor.accentColor,
+ // offset: Offset(2, 2)),
+ // BoxShadow(
+ // color: AppColor.accentColor.withOpacity(.4),
+ // offset: const Offset(-2, -2))
+ // ],
+ // borderRadius:
+ // const BorderRadius.all(Radius.circular(15))),
+ // child: controller.data.isEmpty
+ // ? const SizedBox()
+ // : Center(
+ // child: Padding(
+ // padding: const EdgeInsets.symmetric(
+ // horizontal: 5),
+ // child: Column(
+ // children: [
+ // Row(
+ // children: [
+ // const Icon(
+ // Icons.location_on,
+ // color: AppColor.redColor,
+ // ),
+ // const SizedBox(
+ // width: 10,
+ // ),
+ // Text(
+ // 'From : '.tr,
+ // style: AppStyle.subtitle,
+ // ),
+ // Text(
+ // controller.data[0]
+ // ['start_address']
+ // .toString(),
+ // style: AppStyle.subtitle,
+ // )
+ // ],
+ // ),
+ // Row(
+ // children: [
+ // const Icon(Icons
+ // .location_searching_rounded),
+ // const SizedBox(
+ // width: 10,
+ // ),
+ // Text(
+ // 'To : '.tr,
+ // style: AppStyle.subtitle,
+ // ),
+ // Text(
+ // controller.data[0]['end_address'],
+ // style: AppStyle.subtitle,
+ // ),
+ // ],
+ // ),
+ // const Divider(
+ // color: AppColor.accentColor,
+ // thickness: 1,
+ // height: 2,
+ // indent: 1,
+ // ),
+ // SizedBox(
+ // height: 40,
+ // child: Row(
+ // mainAxisAlignment:
+ // MainAxisAlignment.center,
+ // children: [
+ // Container(
+ // decoration: BoxDecoration(
+ // color:
+ // AppColor.secondaryColor,
+ // borderRadius:
+ // BorderRadius.circular(12),
+ // // border: Border.all(),
+ // ),
+ // child: Row(
+ // children: [
+ // Icon(
+ // Icons.monetization_on,
+ // color: Colors.green[400],
+ // ),
+ // InkWell(
+ // onTap: () async {
+ // controller
+ // .changeCashConfirmPageShown();
+ // Get.find<
+ // PaymentController>()
+ // .getPassengerWallet();
+ // },
+ // child: GetBuilder<
+ // PaymentController>(
+ // builder: (paymentController) =>
+ // paymentController
+ // .isCashChecked
+ // ? Text(
+ // 'CASH',
+ // style: AppStyle
+ // .title,
+ // )
+ // : Text(
+ // '${AppInformation.appName} Wallet',
+ // style: AppStyle
+ // .title,
+ // ),
+ // ),
+ // ),
+ // ],
+ // ),
+ // ),
+ // const SizedBox(
+ // width: 40,
+ // ),
+ // GetBuilder<PaymentController>(
+ // builder:
+ // (paymentController) =>
+ // Container(
+ // decoration:
+ // BoxDecoration(
+ // color: AppColor
+ // .secondaryColor,
+ // borderRadius:
+ // BorderRadius
+ // .circular(
+ // 12),
+ // ),
+ // child: Row(
+ // children: [
+ // Icon(
+ // Icons
+ // .qr_code_2_rounded,
+ // color: Colors
+ // .green[
+ // 400],
+ // ),
+ // InkWell(
+ // onTap: () {
+ // if (controller
+ // .promoTaken ==
+ // false) {
+ // Get.defaultDialog(
+ // title: 'Add Promo'.tr,
+ // titleStyle: AppStyle.title,
+ // content: Column(
+ // children: [
+ // SizedBox(
+ // width: Get.width * .7,
+ // child: TextFormField(
+ // controller: controller.promo,
+ // decoration: InputDecoration(
+ // labelText: 'Promo Code'.tr,
+ // hintText: 'Enter promo code'.tr,
+ // labelStyle: AppStyle.subtitle,
+ // hintStyle: AppStyle.subtitle,
+ // border: OutlineInputBorder(
+ // borderRadius: BorderRadius.circular(10),
+ // ),
+ // filled: true,
+ // fillColor: Colors.grey[200],
+ // focusedBorder: OutlineInputBorder(
+ // borderSide: const BorderSide(
+ // color: AppColor.primaryColor,
+ // width: 2.0,
+ // ),
+ // borderRadius: BorderRadius.circular(10),
+ // ),
+ // errorBorder: OutlineInputBorder(
+ // borderSide: const BorderSide(
+ // color: Colors.red,
+ // width: 2.0,
+ // ),
+ // borderRadius: BorderRadius.circular(10),
+ // ),
+ // enabledBorder: OutlineInputBorder(
+ // borderSide: const BorderSide(
+ // color: Colors.grey,
+ // width: 1.0,
+ // ),
+ // borderRadius: BorderRadius.circular(10),
+ // ),
+ // ),
+ // ),
+ // ),
+ // MyElevatedButton(
+ // title: 'Add Promo'.tr,
+ // onPressed: () async {
+ // controller.applyPromoCodeToPassenger();
+ // },
+ // )
+ // ],
+ // ));
+ // } else {
+ // Get.snackbar(
+ // 'You have promo!'
+ // .tr,
+ // '',
+ // backgroundColor:
+ // AppColor.redColor);
+ // }
+ // },
+ // child: Text(
+ // 'Add Promo'
+ // .tr,
+ // style: AppStyle
+ // .title,
+ // ),
+ // ),
+ // ],
+ // ),
+ // )),
+ // ],
+ // ),
+ // ),
+ // SizedBox(
+ // width: Get.width * .95,
+ // child: Row(
+ // mainAxisAlignment:
+ // MainAxisAlignment.center,
+ // children: [
+ // controller.isCashSelectedBeforeConfirmRide ==
+ // false
+ // ? MyElevatedButton(
+ // title: 'Next'.tr,
+ // onPressed: () {
+ // controller
+ // .changeCashConfirmPageShown();
+ // },
+ // )
+ // :
+ // // controller.isPassengerChosen ==
+ // // false
+ // // ? MyElevatedButton(
+ // // title: 'Next'.tr,
+ // // onPressed: () {
+ // // controller
+ // // .onChangedPassengersChoose();
+ // // Get.defaultDialog(
+ // // barrierDismissible:
+ // // false,
+ // // title:
+ // // 'How Many Passengers?'
+ // // .tr,
+ // // titleStyle:
+ // // AppStyle
+ // // .title,
+ // // content:
+ // // Column(
+ // // children: [
+ // // Text(
+ // // 'Allowed up to 4 Passengers.'
+ // // .tr,
+ // // style: AppStyle
+ // // .title,
+ // // ),
+ // // SizedBox(
+ // // height:
+ // // 200, // Set the desired height here
+ // // child:
+ // // CupertinoPicker(
+ // // itemExtent:
+ // // 32,
+ // // onSelectedItemChanged:
+ // // (index) {
+ // // controller.onChangedPassengerCount(index +
+ // // 1);
+ // // },
+ // // children: [
+ // // Text('1 Passenger'.tr),
+ // // Text('2 Passengers'.tr),
+ // // Text('3 Passengers'.tr),
+ // // Text('4 Passengers'.tr),
+ // // ],
+ // // ),
+ // // ),
+ // // MyElevatedButton(
+ // // title:
+ // // 'Back',
+ // // onPressed:
+ // // () =>
+ // // Get.back(),
+ // // )
+ // // ],
+ // // ),
+ // // );
+ // // },
+ // // )
+ // // :
+ // MyElevatedButton(
+ // title: 'Confirm Selection'
+ // .tr,
+ // onPressed: () {
+ // controller
+ // .confirmRideForFirstDriver();
+ // },
+ // ),
+ // ],
+ // ),
+ // )
+ // ],
+ // ),
+ // ),
+ // ),
+ // ),
+ // ],
+ // ),
+ // ),
+ // ],
+ ),
+ )
+ : const SizedBox());
+}
+
+class Details extends StatelessWidget {
+ const Details({
+ super.key,
+ });
+
+ @override
+ Widget build(BuildContext context) {
+ return GetBuilder<RideLifecycleController>(
+ builder: (controller) => Column(
+ children: [
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceAround,
+ children: [
+ Text(
+ '${'Distance is'.tr} ${controller.distance.toStringAsFixed(2)} KM',
+ style: AppStyle.title,
+ ),
+ Text(
+ '${'Duration is'.tr} ${controller.data[0]['duration']['text']}',
+ style: AppStyle.title,
+ ),
+ ],
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceAround,
+ children: [
+ Text(
+ 'Cost for .21/km ${controller.costDistance.toStringAsFixed(2)} ',
+ style: AppStyle.title,
+ ),
+ Text(
+ '${'Cost Duration'.tr} ${controller.averageDuration.toStringAsFixed(2)} is ${controller.costDuration.toStringAsFixed(2)} ',
+ style: AppStyle.title,
+ ),
+ ],
+ ),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceAround,
+ children: [
+ Text(
+ 'Total Driver ${controller.totalDriver.toStringAsFixed(2)}',
+ style: AppStyle.title,
+ ),
+ Text(
+ 'totaME ${controller.totalME.toStringAsFixed(2)} ',
+ style: AppStyle.title,
+ ),
+ ],
+ ),
+ Text(
+ 'Cost for passenger ${controller.totalPassenger.toStringAsFixed(2)} ',
+ style: AppStyle.title,
+ ),
+ ],
+ ));
+ }
+}