Files
tripz/lib/views/home/my_wallet/passenger_wallet.dart
Hamza-Ayed 13a7c3db81 25-1/31/1
2025-01-31 14:57:17 +03:00

243 lines
9.7 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:Tripz/views/home/my_wallet/payment_history_passenger_page.dart';
import '../../../constant/box_name.dart';
import '../../../constant/colors.dart';
import '../../../constant/info.dart';
import '../../../constant/style.dart';
import '../../../controller/functions/encrypt_decrypt.dart';
import '../../../controller/functions/toast.dart';
import '../../../controller/home/payment/credit_card_controller.dart';
import '../../../controller/payment/payment_controller.dart';
import '../../../main.dart';
import '../../widgets/elevated_btn.dart';
import '../../widgets/my_scafold.dart';
import 'passenger_wallet_dialoge.dart';
class PassengerWallet extends StatelessWidget {
const PassengerWallet({super.key});
@override
Widget build(BuildContext context) {
Get.put(PaymentController());
Get.put(CreditCardController());
return MyScafolld(
title: 'My Wallet'.tr,
isleading: true,
body: [
GetBuilder<PaymentController>(
builder: (controller) => Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const CardTripzWallet(),
const SizedBox(
height: 20,
),
Padding(
padding:
const EdgeInsets.symmetric(horizontal: 80, vertical: 10),
child: MyElevatedButton(
kolor: AppColor.blueColor,
title: 'Payment History'.tr,
onPressed: () {
Get.to(() => const PaymentHistoryPassengerPage(),
transition: Transition.size);
},
),
),
// Padding(
// padding:
// const EdgeInsets.symmetric(horizontal: 80, vertical: 10),
// child: MyElevatedButton(
// kolor: AppColor.yellowColor,
// title: 'Bonus gift'.tr,
// onPressed: () {
// Get.dialog(
// AlertDialog(
// contentPadding: EdgeInsets
// .zero, // Removes the padding around the content
// content: SizedBox(
// width: 300, // Match the width of PromoBanner
// // height: 250, // Match the height of PromoBanner
// child: PromoBanner(
// promoCode: box.read(BoxName.promo),
// discountPercentage: box.read(BoxName.discount),
// validity: box.read(BoxName.validity),
// ),
// ),
// ),
// );
// Log.print(
// 'box.read(BoxName.isGiftToken).toString(): ${box.read(BoxName.isGiftToken).toString()}');
// },
// ),
// )
],
),
),
GetBuilder<PaymentController>(
builder: (controller) => controller.isPromoSheetDialogue
? Container(
color: AppColor.accentColor.withOpacity(.91),
)
: const SizedBox()),
GetBuilder<PaymentController>(
builder: (controller) => Positioned(
bottom: Get.height * .2,
left: Get.width * .2,
right: Get.width * .2,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
MyElevatedButton(
title: 'Show Promos to Charge'.tr,
onPressed: () {
// controller.changePromoSheetDialogue();
showPaymentBottomSheet(context);
},
),
const SizedBox(
height: 20,
),
MyElevatedButton(
kolor: AppColor.deepPurpleAccent,
title: "Add wallet phone you use".tr,
onPressed: () {
Get.dialog(
CupertinoAlertDialog(
title: Text('Insert Wallet phone number'.tr),
content: Column(
children: [
const SizedBox(height: 10),
Form(
key: controller.formKey,
child: CupertinoTextField(
controller:
controller.walletphoneController,
placeholder:
'Insert Wallet phone number'.tr,
keyboardType: TextInputType.phone,
padding: const EdgeInsets.symmetric(
vertical: 12, horizontal: 10),
),
),
],
),
actions: <Widget>[
CupertinoDialogAction(
child: Text('Cancel'.tr,
style: const TextStyle(
color: CupertinoColors
.destructiveRed)),
onPressed: () {
Get.back(); // Dismiss the dialog
},
),
CupertinoDialogAction(
child: Text('OK'.tr,
style: const TextStyle(
color:
CupertinoColors.activeGreen)),
onPressed: () async {
Get.back(); // Close the dialog
box.write(
BoxName.phoneWallet,
controller
.walletphoneController.text);
Toast.show(
context,
'Phone Wallet Saved Successfully'.tr,
AppColor.greenColor);
},
),
],
),
barrierDismissible:
false, // Set to prevent dismissing by tapping outside
);
})
],
),
)),
const PassengerWalletDialog(),
],
);
}
}
class CardTripzWallet extends StatelessWidget {
const CardTripzWallet({super.key});
@override
Widget build(BuildContext context) {
return GetBuilder<PaymentController>(
builder: (paymentController) {
return Container(
width: Get.width * 0.9,
height: Get.height * 0.25,
margin: const EdgeInsets.all(16.0),
decoration: BoxDecoration(
color: CupertinoColors.extraLightBackgroundGray,
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
offset: const Offset(0, 10),
blurRadius: 20,
),
],
),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Wallet Title
Text(
'${AppInformation.appName} Wallet',
style: AppStyle.headTitle.copyWith(
color: CupertinoColors.label,
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
// Wallet Balance
Center(
child: Text(
'${box.read(BoxName.passengerWalletTotal) ?? '0.0'} ${'LE'.tr}',
style: AppStyle.headTitle2.copyWith(
color: CupertinoColors.label,
fontSize: 36,
fontWeight: FontWeight.w600,
),
),
),
// User Name (Bottom Right)
Align(
alignment: Alignment.bottomRight,
child: Text(
encryptionHelper
.decryptData(
box.read(BoxName.name).toString().split(' ')[0])
.toString(),
style: AppStyle.title.copyWith(
color: CupertinoColors.secondaryLabel,
fontSize: 16,
),
),
),
],
),
),
);
},
);
}
}