commit d8901e1a879f696e512e13d389d666baae33dc84 Author: Hamza-Ayed 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 buttomSheetMapPage() { + Get.put(PaymentController()); + return GetBuilder( + 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( + // 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( + 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, + ), + ], + )); + } +}