Files
tripz/lib/views/home/profile/promos_passenger_page.dart
2024-10-12 19:19:26 +03:00

235 lines
12 KiB
Dart

import 'package:animated_text_kit/animated_text_kit.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/home/profile/promos_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import '../../../constant/box_name.dart';
import '../../../constant/colors.dart';
import '../../../constant/style.dart';
import '../../../main.dart';
import '../../widgets/mycircular.dart';
import 'budgets_ads.dart';
class PromosPassengerPage extends StatelessWidget {
const PromosPassengerPage({super.key});
@override
Widget build(BuildContext context) {
Get.put(PromosController());
return MyScafolld(
title: 'Promos For today'.tr,
isleading: true,
body: [
GetBuilder<PromosController>(
builder: (orderHistoryController) => orderHistoryController.isLoading
? const MyCircularProgressIndicator()
: ListView.builder(
itemCount: orderHistoryController.promoList.length +
1, // Adding 1 for the ad
itemBuilder: (BuildContext context, int index) {
if (index == 0) {
// Ad at the beginning
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
height: 120, // Adjust the height of the ad container
decoration: BoxDecoration(
color:
Colors.grey[200], // Background color for the ad
borderRadius: BorderRadius.circular(10),
),
child: Center(
child: Container(
decoration: AppStyle.boxDecoration,
height: Get.height * .19,
child: ListView(
scrollDirection: Axis.horizontal,
children: [
PointsCaptain(
kolor: AppColor.greyColor,
pricePoint:
box.read(BoxName.countryCode) ==
'Jordan'
? 5
: 100,
countPoint:
box.read(BoxName.countryCode) ==
'Jordan'
? '300'
: '100',
),
PointsCaptain(
kolor: AppColor.bronze,
pricePoint:
box.read(BoxName.countryCode) ==
'Jordan'
? 10
: 200,
countPoint:
box.read(BoxName.countryCode) ==
'Jordan'
? '1040'
: '210',
),
PointsCaptain(
kolor: AppColor.goldenBronze,
pricePoint:
box.read(BoxName.countryCode) ==
'Jordan'
? 22
: 400,
countPoint:
box.read(BoxName.countryCode) ==
'Jordan'
? '2300'
: '450',
),
PointsCaptain(
kolor: AppColor.gold,
pricePoint:
box.read(BoxName.countryCode) ==
'Jordan'
? 50
: 1000,
countPoint:
box.read(BoxName.countryCode) ==
'Jordan'
? '55000'
: '1200',
),
],
)),
),
),
);
} else {
// Promo items
final rides = orderHistoryController.promoList[index - 1];
return Padding(
padding: const EdgeInsets.all(12.0),
child: Container(
decoration: BoxDecoration(
color: CupertinoColors.systemGrey6,
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color:
CupertinoColors.systemGrey.withOpacity(0.5),
blurRadius: 8,
offset: Offset(0, 4),
),
],
),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
GestureDetector(
onTap: () {},
child: AnimatedTextKit(
animatedTexts: [
ScaleAnimatedText(
rides['promo_code'],
textStyle:
AppStyle.title.copyWith(
fontSize:
32, // Increased font size for emphasis
color: CupertinoColors
.activeBlue,
fontWeight: FontWeight.bold,
),
),
WavyAnimatedText(
rides['promo_code'],
textStyle:
AppStyle.title.copyWith(
fontSize:
32, // Increased font size for emphasis
color: CupertinoColors
.activeBlue,
fontWeight: FontWeight.bold,
),
),
],
isRepeatingAnimation: true,
),
),
const SizedBox(height: 8),
// Description Text
Text(
rides['description'],
style: AppStyle.title.copyWith(
fontSize: 22,
color: CupertinoColors.systemGrey,
),
),
],
),
Column(
children: [
// Only displaying end date
Text(
'${'Valid Until:'.tr} ${rides['validity_end_date']}',
style: AppStyle.subtitle.copyWith(
fontWeight: FontWeight.bold,
fontSize: 20,
color: CupertinoColors.systemGrey,
),
),
],
),
],
),
// const SizedBox(height: 16),
// Copy Promo Text
Center(
child: GestureDetector(
onTap: () {
Clipboard.setData(ClipboardData(
text: rides['promo_code']));
Get.snackbar(
'Promo Copied!'.tr,
'You have copied the promo code.'.tr,
snackPosition: SnackPosition.BOTTOM,
backgroundColor:
CupertinoColors.systemGrey,
colorText: CupertinoColors.white,
);
},
child: Text(
'Copy Code'.tr,
textAlign: TextAlign.center,
style: AppStyle.headTitle2.copyWith(
color: CupertinoColors.systemBlue,
fontWeight: FontWeight.bold,
),
),
),
),
],
),
),
),
);
}
},
),
)
],
);
}
}