import 'package:SEFER/constant/box_name.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:SEFER/constant/colors.dart'; import 'package:SEFER/constant/style.dart'; import 'package:SEFER/controller/functions/toast.dart'; import 'package:SEFER/controller/payment/payment_controller.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart'; import '../../../main.dart'; class PassengerWalletDialog extends StatelessWidget { const PassengerWalletDialog({ super.key, }); @override Widget build(BuildContext context) { return GetBuilder( builder: (controller) => Positioned( top: Get.height * .1, right: Get.width * .15, left: Get.width * .15, bottom: Get.height * .1, child: controller.isPromoSheetDialogue ? Container( decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(12)), color: AppColor.secondaryColor, boxShadow: [ BoxShadow( color: AppColor.accentColor, offset: Offset(-1, -1), blurRadius: 0, spreadRadius: 0, blurStyle: BlurStyle.normal), BoxShadow( color: AppColor.accentColor, offset: Offset(3, 3), blurRadius: 1, spreadRadius: 0, blurStyle: BlurStyle.normal) ]), child: Padding( padding: const EdgeInsets.all(6), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ GestureDetector( onTap: () { controller.updateSelectedAmount(10); }, child: Row( children: [ Radio( value: box.read(BoxName.countryCode) == 'Egypt' ? 100 : 10, groupValue: controller.selectedAmount, onChanged: (value) { controller.updateSelectedAmount(value as int); }, ), Text( box.read(BoxName.countryCode) == 'Egypt' ? '100 ${'LE'.tr}'.tr : '10 ${'JOD'.tr}'.tr, style: AppStyle.title, ), ], ), ), GestureDetector( onTap: () { controller.updateSelectedAmount(20); }, child: Row( children: [ Radio( value: box.read(BoxName.countryCode) == 'Egypt' ? 210 : 20, groupValue: controller.selectedAmount, onChanged: (value) { controller .updateSelectedAmount(value as int); }, ), Text( box.read(BoxName.countryCode) == 'Egypt' ? '${'200 ${'LE'.tr} '.tr} = 205 ${'LE'.tr}' : '20 ${'JOD'.tr}'.tr, style: AppStyle.title, ), ], )), GestureDetector( onTap: () { controller.updateSelectedAmount(40); }, child: Row( children: [ Radio( value: box.read(BoxName.countryCode) == 'Egypt' ? 415 : 40, groupValue: controller.selectedAmount, onChanged: (value) { controller .updateSelectedAmount(value as int); }, ), Text( box.read(BoxName.countryCode) == 'Egypt' ? '${'400 ${'LE'.tr} '.tr} = 415 ${'LE'.tr}' : '40 ${'JOD'.tr}'.tr, style: AppStyle.title, ), ], )), GestureDetector( onTap: () { controller.updateSelectedAmount(100); }, child: Row( children: [ Radio( value: box.read(BoxName.countryCode) == 'Egypt' ? 1100 : 50, groupValue: controller.selectedAmount, onChanged: (value) { controller .updateSelectedAmount(value as int); }, ), Text( box.read(BoxName.countryCode) == 'Egypt' ? '${'1000 ${'LE'.tr} '.tr} = 1100 ${'LE'.tr}' : '50 ${'JOD'.tr}'.tr, style: AppStyle.title, ), ], )), const Spacer(), box.read(BoxName.countryCode) == 'Egypt' ? const SizedBox() : MyElevatedButton( kolor: AppColor.blueColor, title: '${'Pay with Your'.tr} PayPal', onPressed: () { if (controller.selectedAmount != 0) { controller.makePaymentPayPal(context); } else { Toast.show( context, 'You will choose one of above !'.tr, AppColor.redColor); } }, ), box.read(BoxName.countryCode) == 'Egypt' ? Column( children: [ MyElevatedButton( title: '💳 Pay with Credit Card'.tr, onPressed: () { if (controller.selectedAmount != 0) { controller.payWithPayMob( context, controller.selectedAmount .toString(), // Convert int to double box.read(BoxName.countryCode) == 'Egypt' ? 'EGP' : 'JOD', () async { await controller .addPassengerWallet(); controller .changePromoSheetDialogue(); await controller .getPassengerWallet(); }, ); } else { Toast.show( context, '⚠️ You need to choose an amount!'.tr, AppColor.redColor, ); } }, ), // Add some spacing between buttons MyElevatedButton( kolor: AppColor.yellowColor, title: '💰 Pay with Wallet'.tr, onPressed: () { if (controller.selectedAmount != 0) { controller.payWithPayMobWallet( context, controller.selectedAmount .toString(), // Convert int to double box.read(BoxName.countryCode) == 'Egypt' ? 'EGP' : 'JOD', () async { await controller .addPassengerWallet(); controller .changePromoSheetDialogue(); await controller .getPassengerWallet(); }, ); } else { Toast.show( context, '⚠️ You need to choose an amount!'.tr, AppColor.redColor, ); } }, ), ], ) : MyElevatedButton( title: 'Pay with Credit Card'.tr, onPressed: () { if (controller.selectedAmount != 0) { controller.makePaymentStripe( controller.selectedAmount! .toDouble(), // Convert int to double box.read(BoxName.countryCode) != 'Egypt' ? 'usd' : 'jod', () { controller.addPassengerWallet(); controller.changePromoSheetDialogue(); controller.getPassengerWallet(); }); } else { Toast.show( context, 'You will choose one of above !'.tr, AppColor.redColor); } }), MyElevatedButton( title: 'Cancel'.tr, kolor: AppColor.redColor, onPressed: () { controller.changePromoSheetDialogue(); }, ), ], ), )) : const SizedBox()), ); } }