BASE: Switch From EasyLocalization To GetX Localization.
This commit is contained in:
@@ -6,10 +6,10 @@ import 'package:customer/models/vendor_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
@@ -34,7 +34,7 @@ class AllAdvertisementScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Highlights for you".tr(),
|
||||
"Highlights for you".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -48,7 +48,7 @@ class AllAdvertisementScreen extends StatelessWidget {
|
||||
? Constant.loader()
|
||||
: controller.advertisementList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Highlights for you not found.".tr(),
|
||||
message: "Highlights for you not found.".tr,
|
||||
)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
@@ -86,7 +86,7 @@ class AdvertisementCard extends StatelessWidget {
|
||||
final isDark = themeController.isDark.value;
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
VendorModel? vendorModel = await FireStoreUtils.getVendorById(
|
||||
model.vendorId!,
|
||||
);
|
||||
|
||||
@@ -14,12 +14,12 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../models/user_model.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
@@ -48,7 +48,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
body:
|
||||
cartItem.isEmpty
|
||||
? Constant.showEmptyView(message: "Item Not available".tr())
|
||||
? Constant.showEmptyView(message: "Item Not available".tr)
|
||||
: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -76,7 +76,7 @@ class CartScreen extends StatelessWidget {
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Service not available in this area"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -501,7 +501,7 @@ class CartScreen extends StatelessWidget {
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Out of stock"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
@@ -527,7 +527,7 @@ class CartScreen extends StatelessWidget {
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Out of stock"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -554,7 +554,7 @@ class CartScreen extends StatelessWidget {
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Out of stock"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -597,7 +597,7 @@ class CartScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Variants".tr(),
|
||||
"Variants".tr,
|
||||
textAlign:
|
||||
TextAlign.start,
|
||||
style: TextStyle(
|
||||
@@ -687,7 +687,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Addons".tr(),
|
||||
"Addons".tr,
|
||||
textAlign:
|
||||
TextAlign.start,
|
||||
style: TextStyle(
|
||||
@@ -822,8 +822,8 @@ class CartScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"${'Delivery Type'.tr()} (${controller.selectedFoodType.value})"
|
||||
.tr(),
|
||||
"${'Delivery Type'.tr} (${controller.selectedFoodType.value})"
|
||||
.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -858,7 +858,7 @@ class CartScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Instant Delivery".tr(),
|
||||
"Instant Delivery".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -874,7 +874,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"Standard".tr(),
|
||||
"Standard".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -894,7 +894,7 @@ class CartScreen extends StatelessWidget {
|
||||
Radio(
|
||||
value:
|
||||
controller.deliveryType.value,
|
||||
groupValue: "instant".tr(),
|
||||
groupValue: "instant".tr,
|
||||
activeColor:
|
||||
AppThemeData.primary300,
|
||||
onChanged: (value) {
|
||||
@@ -928,7 +928,7 @@ class CartScreen extends StatelessWidget {
|
||||
},
|
||||
minDateTime: DateTime.now(),
|
||||
displaySubmitButton: true,
|
||||
pickerTitle: Text('Schedule Time'.tr()),
|
||||
pickerTitle: Text('Schedule Time'.tr),
|
||||
buttonSingleColor:
|
||||
AppThemeData.primary300,
|
||||
).show(context);
|
||||
@@ -943,7 +943,7 @@ class CartScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Schedule Time".tr(),
|
||||
"Schedule Time".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -959,7 +959,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"${'Your preferred time'.tr()} ${controller.deliveryType.value == "schedule" ? Constant.timestampToDateTime(Timestamp.fromDate(controller.scheduleDateTime.value)) : ""}",
|
||||
"${'Your preferred time'.tr} ${controller.deliveryType.value == "schedule" ? Constant.timestampToDateTime(Timestamp.fromDate(controller.scheduleDateTime.value)) : ""}",
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -977,7 +977,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
Radio(
|
||||
value: controller.deliveryType.value,
|
||||
groupValue: "schedule".tr(),
|
||||
groupValue: "schedule".tr,
|
||||
activeColor: AppThemeData.primary300,
|
||||
onChanged: (value) {
|
||||
controller.deliveryType.value =
|
||||
@@ -998,7 +998,7 @@ class CartScreen extends StatelessWidget {
|
||||
.value,
|
||||
displaySubmitButton: true,
|
||||
pickerTitle: Text(
|
||||
'Schedule Time'.tr(),
|
||||
'Schedule Time'.tr,
|
||||
),
|
||||
buttonSingleColor:
|
||||
AppThemeData.primary300,
|
||||
@@ -1020,7 +1020,7 @@ class CartScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Offers & Benefits".tr(),
|
||||
"Offers & Benefits".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1066,7 +1066,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Apply Coupons".tr(),
|
||||
"Apply Coupons".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1095,7 +1095,7 @@ class CartScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Bill Details".tr(),
|
||||
"Bill Details".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1139,7 +1139,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Item totals".tr(),
|
||||
"Item totals".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1180,7 +1180,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Delivery Fee".tr(),
|
||||
"Delivery Fee".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1203,7 +1203,7 @@ class CartScreen extends StatelessWidget {
|
||||
Constant.isSelfDeliveryFeature ==
|
||||
true)
|
||||
? Text(
|
||||
'Free Delivery'.tr(),
|
||||
'Free Delivery'.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1251,7 +1251,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Coupon Discount".tr(),
|
||||
"Coupon Discount".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1294,7 +1294,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Special Discount".tr(),
|
||||
"Special Discount".tr,
|
||||
textAlign:
|
||||
TextAlign.start,
|
||||
style: TextStyle(
|
||||
@@ -1352,7 +1352,7 @@ class CartScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Delivery Tips".tr(),
|
||||
"Delivery Tips".tr,
|
||||
textAlign:
|
||||
TextAlign.start,
|
||||
style: TextStyle(
|
||||
@@ -1382,7 +1382,7 @@ class CartScreen extends StatelessWidget {
|
||||
.calculatePrice();
|
||||
},
|
||||
child: Text(
|
||||
"Remove".tr(),
|
||||
"Remove".tr,
|
||||
textAlign:
|
||||
TextAlign.start,
|
||||
style: TextStyle(
|
||||
@@ -1509,7 +1509,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"To Pay".tr(),
|
||||
"To Pay".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1561,7 +1561,7 @@ class CartScreen extends StatelessWidget {
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Thanks with a tip!".tr(),
|
||||
"Thanks with a tip!".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1606,7 +1606,7 @@ class CartScreen extends StatelessWidget {
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Around the clock, our delivery partners make it happen. Show gratitude with a tip.."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1858,7 +1858,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
'Other'.tr(),
|
||||
'Other'.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -1894,9 +1894,9 @@ class CartScreen extends StatelessWidget {
|
||||
child: Column(
|
||||
children: [
|
||||
TextFieldWidget(
|
||||
title: 'Remarks'.tr(),
|
||||
title: 'Remarks'.tr,
|
||||
controller: controller.reMarkController.value,
|
||||
hintText: 'Write remarks for the store'.tr(),
|
||||
hintText: 'Write remarks for the store'.tr,
|
||||
maxLine: 4,
|
||||
),
|
||||
],
|
||||
@@ -1926,7 +1926,7 @@ class CartScreen extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 8),
|
||||
child: Text(
|
||||
"Cashback Offer".tr(),
|
||||
"Cashback Offer".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -1938,7 +1938,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${"Cashback Name :".tr()} ${controller.bestCashback.value.title ?? ''}",
|
||||
"${"Cashback Name :".tr} ${controller.bestCashback.value.title ?? ''}",
|
||||
style: TextStyle(
|
||||
color: AppThemeData.success300,
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1946,7 +1946,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${"You will get".tr()} ${Constant.amountShow(amount: controller.bestCashback.value.cashbackValue?.toStringAsFixed(2))} ${"cashback after completing the order.".tr()}",
|
||||
"${"You will get".tr} ${Constant.amountShow(amount: controller.bestCashback.value.cashbackValue?.toStringAsFixed(2))} ${"cashback after completing the order.".tr}",
|
||||
style: TextStyle(
|
||||
color: AppThemeData.success300,
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -2115,7 +2115,7 @@ class CartScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Pay Via".tr(),
|
||||
"Pay Via".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -2176,7 +2176,7 @@ class CartScreen extends StatelessWidget {
|
||||
: isDark
|
||||
? AppThemeData.grey800
|
||||
: AppThemeData.grey100,
|
||||
title: "Pay Now".tr(),
|
||||
title: "Pay Now".tr,
|
||||
height: 5,
|
||||
color:
|
||||
controller.selectedPaymentMethod.value !=
|
||||
@@ -2192,7 +2192,7 @@ class CartScreen extends StatelessWidget {
|
||||
controller.totalAmount.value)) {
|
||||
ShowToastDialog.showToast(
|
||||
"The total price must be greater than or equal to the coupon discount value for the code to apply. Please review your cart total."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -2206,7 +2206,7 @@ class CartScreen extends StatelessWidget {
|
||||
controller.totalAmount.value)) {
|
||||
ShowToastDialog.showToast(
|
||||
"The total price must be greater than or equal to the special discount value for the code to apply. Please review your cart total."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -2329,7 +2329,7 @@ class CartScreen extends StatelessWidget {
|
||||
Get.back();
|
||||
ShowToastDialog.showToast(
|
||||
"Something went wrong, please contact admin."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
} else {
|
||||
CreateRazorPayOrderModel
|
||||
@@ -2347,7 +2347,7 @@ class CartScreen extends StatelessWidget {
|
||||
} else {
|
||||
controller.isOrderPlaced.value = false;
|
||||
ShowToastDialog.showToast(
|
||||
"Please select payment method".tr(),
|
||||
"Please select payment method".tr,
|
||||
);
|
||||
}
|
||||
controller.isOrderPlaced.value = false;
|
||||
@@ -2411,7 +2411,7 @@ class CartScreen extends StatelessWidget {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
TextFieldWidget(
|
||||
title: 'Tips Amount'.tr(),
|
||||
title: 'Tips Amount'.tr,
|
||||
controller: controller.tipsController.value,
|
||||
textInputType: const TextInputType.numberWithOptions(
|
||||
signed: true,
|
||||
@@ -2427,7 +2427,7 @@ class CartScreen extends StatelessWidget {
|
||||
vertical: 14,
|
||||
),
|
||||
child: Text(
|
||||
Constant.currencyModel!.symbol.tr(),
|
||||
Constant.currencyModel!.symbol.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
@@ -2436,7 +2436,7 @@ class CartScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: 'Enter Tips Amount'.tr(),
|
||||
hintText: 'Enter Tips Amount'.tr,
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
Row(
|
||||
@@ -2444,7 +2444,7 @@ class CartScreen extends StatelessWidget {
|
||||
Expanded(
|
||||
child: RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "Cancel".tr(),
|
||||
title: "Cancel".tr,
|
||||
color:
|
||||
isDark ? AppThemeData.grey700 : AppThemeData.grey200,
|
||||
textColor:
|
||||
@@ -2458,13 +2458,13 @@ class CartScreen extends StatelessWidget {
|
||||
Expanded(
|
||||
child: RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "Add".tr(),
|
||||
title: "Add".tr,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
onPress: () async {
|
||||
if (controller.tipsController.value.text.isEmpty) {
|
||||
ShowToastDialog.showToast(
|
||||
"Please enter tips Amount".tr(),
|
||||
"Please enter tips Amount".tr,
|
||||
);
|
||||
} else {
|
||||
controller.deliveryTips.value = double.parse(
|
||||
|
||||
@@ -6,9 +6,9 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:customer/widget/my_separator.dart';
|
||||
import 'package:dotted_border/dotted_border.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
|
||||
@@ -31,7 +31,7 @@ class CouponListScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Coupon Code".tr(),
|
||||
"Coupon Code".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -44,7 +44,7 @@ class CouponListScreen extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: TextFieldWidget(
|
||||
hintText: 'Enter coupon code'.tr(),
|
||||
hintText: 'Enter coupon code'.tr,
|
||||
controller: controller.couponCodeController.value,
|
||||
suffix: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
@@ -59,7 +59,7 @@ class CouponListScreen extends StatelessWidget {
|
||||
.text
|
||||
.isEmpty) {
|
||||
ShowToastDialog.showToast(
|
||||
"Please enter coupon code".tr(),
|
||||
"Please enter coupon code".tr,
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -83,15 +83,15 @@ class CouponListScreen extends StatelessWidget {
|
||||
Get.back();
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Coupon code not applied".tr(),
|
||||
"Coupon code not applied".tr,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
ShowToastDialog.showToast("Invalid Coupon".tr());
|
||||
ShowToastDialog.showToast("Invalid Coupon".tr);
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
"Apply".tr(),
|
||||
"Apply".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -147,7 +147,7 @@ class CouponListScreen extends StatelessWidget {
|
||||
child: RotatedBox(
|
||||
quarterTurns: -1,
|
||||
child: Text(
|
||||
"${couponModel.discountType == "Fix Price" ? Constant.amountShow(amount: couponModel.discount) : "${couponModel.discount}%"} ${'Off'.tr()}",
|
||||
"${couponModel.discountType == "Fix Price" ? Constant.amountShow(amount: couponModel.discount) : "${couponModel.discount}%"} ${'Off'.tr}",
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -221,12 +221,12 @@ class CouponListScreen extends StatelessWidget {
|
||||
Get.back();
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Coupon code not applied".tr(),
|
||||
"Coupon code not applied".tr,
|
||||
);
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
"Tap To Apply".tr(),
|
||||
"Tap To Apply".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
|
||||
@@ -6,11 +6,12 @@ import 'package:customer/models/cart_product_model.dart';
|
||||
import 'package:customer/screen_ui/ecommarce/dash_board_e_commerce_screen.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../dash_board_screens/dash_board_screen.dart';
|
||||
|
||||
@@ -44,7 +45,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Order Placed".tr(),
|
||||
"Order Placed".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -58,7 +59,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Hang tight — your items are being delivered quickly and safely!"
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -100,7 +101,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
const SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Order ID".tr(),
|
||||
"Order ID".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -147,7 +148,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Placing your order".tr(),
|
||||
"Placing your order".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -161,7 +162,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Take a moment to review your order before proceeding to checkout."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -203,7 +204,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
const SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Delivery Address".tr(),
|
||||
"Delivery Address".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -265,7 +266,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
const SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Order Summary".tr(),
|
||||
"Order Summary".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -299,7 +300,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"${cartProductModel.quantity} x".tr(),
|
||||
"${cartProductModel.quantity} x".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -312,7 +313,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${cartProductModel.name}".tr(),
|
||||
"${cartProductModel.name}".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -344,7 +345,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
controller.isPlacing.value
|
||||
? RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "Track Order".tr(),
|
||||
title: "Track Order".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
@@ -368,7 +369,7 @@ class OrderPlacingScreen extends StatelessWidget {
|
||||
)
|
||||
: RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "Track Order".tr(),
|
||||
title: "Track Order".tr,
|
||||
height: 5.5,
|
||||
color:
|
||||
isDark
|
||||
|
||||
@@ -2,10 +2,10 @@ import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/cart_controller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../wallet_screen/wallet_screen.dart';
|
||||
|
||||
@@ -20,13 +20,15 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
init: CartController(),
|
||||
builder: (controller) {
|
||||
return Scaffold(
|
||||
backgroundColor: isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
backgroundColor:
|
||||
isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
appBar: AppBar(
|
||||
backgroundColor: isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
backgroundColor:
|
||||
isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Payment Option".tr(),
|
||||
"Payment Option".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -42,21 +44,23 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Preferred Payment".tr(),
|
||||
"Preferred Payment".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
color:
|
||||
isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
if (controller.walletSettingModel.value.isEnabled == true || controller.cashOnDeliverySettingModel.value.isEnabled == true)
|
||||
const SizedBox(height: 10),
|
||||
if (controller.walletSettingModel.value.isEnabled == true ||
|
||||
controller.cashOnDeliverySettingModel.value.isEnabled ==
|
||||
true)
|
||||
Container(
|
||||
decoration: ShapeDecoration(
|
||||
color: isDark ? AppThemeData.grey900 : AppThemeData.grey50,
|
||||
color:
|
||||
isDark ? AppThemeData.grey900 : AppThemeData.grey50,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
),
|
||||
@@ -66,7 +70,7 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
blurRadius: 20,
|
||||
offset: Offset(0, 0),
|
||||
spreadRadius: 0,
|
||||
)
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
@@ -74,40 +78,62 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
child: Column(
|
||||
children: [
|
||||
Visibility(
|
||||
visible: controller.walletSettingModel.value.isEnabled == true,
|
||||
child: cardDecoration(controller, PaymentGateway.wallet, isDark, "assets/images/ic_wallet.png"),
|
||||
visible:
|
||||
controller
|
||||
.walletSettingModel
|
||||
.value
|
||||
.isEnabled ==
|
||||
true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.wallet,
|
||||
isDark,
|
||||
"assets/images/ic_wallet.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.cashOnDeliverySettingModel.value.isEnabled == true,
|
||||
child: cardDecoration(controller, PaymentGateway.cod, isDark, "assets/images/ic_cash.png"),
|
||||
visible:
|
||||
controller
|
||||
.cashOnDeliverySettingModel
|
||||
.value
|
||||
.isEnabled ==
|
||||
true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.cod,
|
||||
isDark,
|
||||
"assets/images/ic_cash.png",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
if (controller.walletSettingModel.value.isEnabled == true || controller.cashOnDeliverySettingModel.value.isEnabled == true)
|
||||
if (controller.walletSettingModel.value.isEnabled == true ||
|
||||
controller.cashOnDeliverySettingModel.value.isEnabled ==
|
||||
true)
|
||||
Column(
|
||||
children: [
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Other Payment Options".tr(),
|
||||
"Other Payment Options".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
color:
|
||||
isDark
|
||||
? AppThemeData.grey50
|
||||
: AppThemeData.grey900,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
],
|
||||
),
|
||||
Container(
|
||||
decoration: ShapeDecoration(
|
||||
color: isDark ? AppThemeData.grey900 : AppThemeData.grey50,
|
||||
color:
|
||||
isDark ? AppThemeData.grey900 : AppThemeData.grey50,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
),
|
||||
@@ -117,7 +143,7 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
blurRadius: 20,
|
||||
offset: Offset(0, 0),
|
||||
spreadRadius: 0,
|
||||
)
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
@@ -125,62 +151,133 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
child: Column(
|
||||
children: [
|
||||
Visibility(
|
||||
visible: controller.stripeModel.value.isEnabled == true,
|
||||
child: cardDecoration(controller, PaymentGateway.stripe, isDark, "assets/images/stripe.png"),
|
||||
visible:
|
||||
controller.stripeModel.value.isEnabled == true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.stripe,
|
||||
isDark,
|
||||
"assets/images/stripe.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.payPalModel.value.isEnabled == true,
|
||||
child: cardDecoration(controller, PaymentGateway.paypal, isDark, "assets/images/paypal.png"),
|
||||
visible:
|
||||
controller.payPalModel.value.isEnabled == true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.paypal,
|
||||
isDark,
|
||||
"assets/images/paypal.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.payStackModel.value.isEnable == true,
|
||||
child: cardDecoration(controller, PaymentGateway.payStack, isDark, "assets/images/paystack.png"),
|
||||
visible:
|
||||
controller.payStackModel.value.isEnable == true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.payStack,
|
||||
isDark,
|
||||
"assets/images/paystack.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.mercadoPagoModel.value.isEnabled == true,
|
||||
child: cardDecoration(controller, PaymentGateway.mercadoPago, isDark, "assets/images/mercado-pago.png"),
|
||||
visible:
|
||||
controller.mercadoPagoModel.value.isEnabled ==
|
||||
true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.mercadoPago,
|
||||
isDark,
|
||||
"assets/images/mercado-pago.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.flutterWaveModel.value.isEnable == true,
|
||||
child: cardDecoration(controller, PaymentGateway.flutterWave, isDark, "assets/images/flutterwave_logo.png"),
|
||||
visible:
|
||||
controller.flutterWaveModel.value.isEnable ==
|
||||
true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.flutterWave,
|
||||
isDark,
|
||||
"assets/images/flutterwave_logo.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.payFastModel.value.isEnable == true,
|
||||
child: cardDecoration(controller, PaymentGateway.payFast, isDark, "assets/images/payfast.png"),
|
||||
visible:
|
||||
controller.payFastModel.value.isEnable == true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.payFast,
|
||||
isDark,
|
||||
"assets/images/payfast.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.razorPayModel.value.isEnabled == true,
|
||||
child: cardDecoration(controller, PaymentGateway.razorpay, isDark, "assets/images/razorpay.png"),
|
||||
visible:
|
||||
controller.razorPayModel.value.isEnabled ==
|
||||
true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.razorpay,
|
||||
isDark,
|
||||
"assets/images/razorpay.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.midTransModel.value.enable == true,
|
||||
child: cardDecoration(controller, PaymentGateway.midTrans, isDark, "assets/images/midtrans.png"),
|
||||
visible:
|
||||
controller.midTransModel.value.enable == true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.midTrans,
|
||||
isDark,
|
||||
"assets/images/midtrans.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.orangeMoneyModel.value.enable == true,
|
||||
child: cardDecoration(controller, PaymentGateway.orangeMoney, isDark, "assets/images/orange_money.png"),
|
||||
visible:
|
||||
controller.orangeMoneyModel.value.enable ==
|
||||
true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.orangeMoney,
|
||||
isDark,
|
||||
"assets/images/orange_money.png",
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: controller.xenditModel.value.enable == true,
|
||||
child: cardDecoration(controller, PaymentGateway.xendit, isDark, "assets/images/xendit.png"),
|
||||
visible:
|
||||
controller.xenditModel.value.enable == true,
|
||||
child: cardDecoration(
|
||||
controller,
|
||||
PaymentGateway.xendit,
|
||||
isDark,
|
||||
"assets/images/xendit.png",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: isDark ? AppThemeData.grey900 : AppThemeData.grey50, borderRadius: const BorderRadius.only(topLeft: Radius.circular(20), topRight: Radius.circular(20))),
|
||||
color: isDark ? AppThemeData.grey900 : AppThemeData.grey50,
|
||||
borderRadius: const BorderRadius.only(
|
||||
topLeft: Radius.circular(20),
|
||||
topRight: Radius.circular(20),
|
||||
),
|
||||
),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "${'Pay Now'.tr()} | ${Constant.amountShow(amount: controller.totalAmount.value.toString())}".tr(),
|
||||
borderRadius: 10.r,
|
||||
title:
|
||||
"${'Pay Now'.tr} | ${Constant.amountShow(amount: controller.totalAmount.value.toString())}"
|
||||
.tr,
|
||||
height: 5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
@@ -196,7 +293,12 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
Obx cardDecoration(CartController controller, PaymentGateway value, isDark, String image) {
|
||||
Obx cardDecoration(
|
||||
CartController controller,
|
||||
PaymentGateway value,
|
||||
isDark,
|
||||
String image,
|
||||
) {
|
||||
return Obx(
|
||||
() => Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 5),
|
||||
@@ -213,68 +315,89 @@ class SelectPaymentScreen extends StatelessWidget {
|
||||
height: 50,
|
||||
decoration: ShapeDecoration(
|
||||
shape: RoundedRectangleBorder(
|
||||
side: const BorderSide(width: 1, color: Color(0xFFE5E7EB)),
|
||||
side: const BorderSide(
|
||||
width: 1,
|
||||
color: Color(0xFFE5E7EB),
|
||||
),
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(value.name == "payFast" ? 0 : 8.0),
|
||||
child: Image.asset(
|
||||
image,
|
||||
padding: EdgeInsets.all(
|
||||
value.name == "payFast" ? 0 : 8.0,
|
||||
),
|
||||
child: Image.asset(image),
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 10,
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
value.name == "wallet"
|
||||
? Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
value.name.capitalizeString(),
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
value.name.capitalizeString(),
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
fontSize: 16,
|
||||
color:
|
||||
isDark
|
||||
? AppThemeData.grey50
|
||||
: AppThemeData.grey900,
|
||||
),
|
||||
Text(
|
||||
Constant.amountShow(amount: controller.userModel.value.walletAmount == null ? '0.0' : controller.userModel.value.walletAmount.toString()),
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.primary300 : AppThemeData.primary300,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
: Expanded(
|
||||
child: Text(
|
||||
value.name.capitalizeString(),
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
),
|
||||
Text(
|
||||
Constant.amountShow(
|
||||
amount:
|
||||
controller.userModel.value.walletAmount ==
|
||||
null
|
||||
? '0.0'
|
||||
: controller
|
||||
.userModel
|
||||
.value
|
||||
.walletAmount
|
||||
.toString(),
|
||||
),
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 16,
|
||||
color:
|
||||
isDark
|
||||
? AppThemeData.primary300
|
||||
: AppThemeData.primary300,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
: Expanded(
|
||||
child: Text(
|
||||
value.name.capitalizeString(),
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
fontSize: 16,
|
||||
color:
|
||||
isDark
|
||||
? AppThemeData.grey50
|
||||
: AppThemeData.grey900,
|
||||
),
|
||||
),
|
||||
const Expanded(
|
||||
child: SizedBox(),
|
||||
),
|
||||
),
|
||||
const Expanded(child: SizedBox()),
|
||||
Radio(
|
||||
value: value.name,
|
||||
groupValue: controller.selectedPaymentMethod.value,
|
||||
activeColor: isDark ? AppThemeData.primary300 : AppThemeData.primary300,
|
||||
activeColor:
|
||||
isDark
|
||||
? AppThemeData.primary300
|
||||
: AppThemeData.primary300,
|
||||
onChanged: (value) {
|
||||
controller.selectedPaymentMethod.value = value.toString();
|
||||
},
|
||||
)
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/cashback_controller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
|
||||
class CashbackOffersListScreen extends StatelessWidget {
|
||||
@@ -21,7 +21,7 @@ class CashbackOffersListScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Cashback Offers".tr(),
|
||||
"Cashback Offers".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -95,7 +95,7 @@ class CashbackOffersListScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 6),
|
||||
Text(
|
||||
"${"Min spent".tr()} ${Constant.amountShow(amount: "${controller.cashbackList[index].minimumPurchaseAmount ?? 0.0}")} | ${"Valid till".tr()} ${Constant.timestampToDateTime2(controller.cashbackList[index].endDate!)}",
|
||||
"${"Min spent".tr} ${Constant.amountShow(amount: "${controller.cashbackList[index].minimumPurchaseAmount ?? 0.0}")} | ${"Valid till".tr} ${Constant.timestampToDateTime2(controller.cashbackList[index].endDate!)}",
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -106,7 +106,7 @@ class CashbackOffersListScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${"Maximum cashback up to".tr()} ${Constant.amountShow(amount: "${controller.cashbackList[index].maximumDiscount ?? 0.0}")}",
|
||||
"${"Maximum cashback up to".tr} ${Constant.amountShow(amount: "${controller.cashbackList[index].maximumDiscount ?? 0.0}")}",
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/change_language_controller.dart';
|
||||
import 'package:customer/screen_ui/splash_screen/splash_screen.dart';
|
||||
import 'package:customer/service/localization_service.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flag/flag_enum.dart';
|
||||
import 'package:flag/flag_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
|
||||
class ChangeLanguageScreen extends StatelessWidget {
|
||||
@@ -51,7 +51,7 @@ class ChangeLanguageScreen extends StatelessWidget {
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// Text(
|
||||
// ConstTexts.changeLanguage.tr(),
|
||||
// ConstTexts.changeLanguage.tr,
|
||||
// style: TextStyle(
|
||||
// fontSize: 24,
|
||||
// color:
|
||||
@@ -63,7 +63,7 @@ class ChangeLanguageScreen extends StatelessWidget {
|
||||
// ),
|
||||
// ),
|
||||
// Text(
|
||||
// ConstTexts.selectPrefferedLanguage.tr(),
|
||||
// ConstTexts.selectPrefferedLanguage.tr,
|
||||
// style: TextStyle(
|
||||
// fontSize: 16,
|
||||
// color:
|
||||
@@ -78,32 +78,35 @@ class ChangeLanguageScreen extends StatelessWidget {
|
||||
// ),
|
||||
// ),
|
||||
_buildLanguageButton(
|
||||
isActive: context.locale == Locale("uz", "UZ"),
|
||||
isActive: Get.locale == const Locale("uz", "UZ"),
|
||||
flagCode: FlagsCode.UZ,
|
||||
title: "O'zbekcha",
|
||||
onTap: () async {
|
||||
await context.setLocale(Locale("uz", "UZ"));
|
||||
Get.forceAppUpdate();
|
||||
LocalizationService.changeLocale(
|
||||
const Locale('uz', 'UZ'),
|
||||
);
|
||||
},
|
||||
),
|
||||
_buildDivider(),
|
||||
_buildLanguageButton(
|
||||
isActive: context.locale == Locale("ru", "RU"),
|
||||
isActive: Get.locale == const Locale('ru', 'RU'),
|
||||
flagCode: FlagsCode.RU,
|
||||
title: "Русский",
|
||||
onTap: () async {
|
||||
await context.setLocale(Locale("ru", "RU"));
|
||||
Get.forceAppUpdate();
|
||||
LocalizationService.changeLocale(
|
||||
const Locale("ru", "RU"),
|
||||
);
|
||||
},
|
||||
),
|
||||
_buildDivider(),
|
||||
_buildLanguageButton(
|
||||
isActive: context.locale == Locale("en", "US"),
|
||||
isActive: Get.locale == const Locale("en", "US"),
|
||||
flagCode: FlagsCode.US,
|
||||
title: "English",
|
||||
onTap: () async {
|
||||
await context.setLocale(Locale("en", "US"));
|
||||
Get.forceAppUpdate();
|
||||
LocalizationService.changeLocale(
|
||||
const Locale("en", "US"),
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
|
||||
@@ -5,13 +5,13 @@ import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/chat_controller.dart';
|
||||
import 'package:customer/models/conversation_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
@@ -68,7 +68,7 @@ class ChatScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
onEmpty: Constant.showEmptyView(
|
||||
message: "No Conversion found".tr(),
|
||||
message: "No Conversion found".tr,
|
||||
),
|
||||
// orderBy is compulsory to enable pagination
|
||||
query: FirebaseFirestore.instance
|
||||
@@ -128,7 +128,7 @@ class ChatScreen extends StatelessWidget {
|
||||
),
|
||||
focusedBorder: InputBorder.none,
|
||||
enabledBorder: InputBorder.none,
|
||||
hintText: 'Type message here....'.tr(),
|
||||
hintText: 'Type message here....'.tr,
|
||||
),
|
||||
onSubmitted: (value) async {
|
||||
if (controller
|
||||
@@ -397,7 +397,7 @@ class ChatScreen extends StatelessWidget {
|
||||
|
||||
void onCameraClick(BuildContext context, ChatController controller) {
|
||||
final action = CupertinoActionSheet(
|
||||
message: Text('Send Media'.tr(), style: const TextStyle(fontSize: 15.0)),
|
||||
message: Text('Send Media'.tr, style: const TextStyle(fontSize: 15.0)),
|
||||
actions: <Widget>[
|
||||
CupertinoActionSheetAction(
|
||||
isDefaultAction: false,
|
||||
@@ -414,7 +414,7 @@ class ChatScreen extends StatelessWidget {
|
||||
controller.sendMessage('', url, '', 'image');
|
||||
}
|
||||
},
|
||||
child: Text("Choose image from gallery".tr()),
|
||||
child: Text("Choose image from gallery".tr),
|
||||
),
|
||||
CupertinoActionSheetAction(
|
||||
isDefaultAction: false,
|
||||
@@ -439,7 +439,7 @@ class ChatScreen extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
},
|
||||
child: Text("Choose video from gallery".tr()),
|
||||
child: Text("Choose video from gallery".tr),
|
||||
),
|
||||
CupertinoActionSheetAction(
|
||||
isDestructiveAction: false,
|
||||
@@ -456,7 +456,7 @@ class ChatScreen extends StatelessWidget {
|
||||
controller.sendMessage('', url, '', 'image');
|
||||
}
|
||||
},
|
||||
child: Text("Take a picture".tr()),
|
||||
child: Text("Take a picture".tr),
|
||||
),
|
||||
// CupertinoActionSheetAction(
|
||||
// isDestructiveAction: false,
|
||||
@@ -468,11 +468,11 @@ class ChatScreen extends StatelessWidget {
|
||||
// controller.sendMessage('', videoContainer.videoUrl, videoContainer.thumbnailUrl, 'video');
|
||||
// }
|
||||
// },
|
||||
// child: Text("Record video".tr()),
|
||||
// child: Text("Record video".tr),
|
||||
// )
|
||||
],
|
||||
cancelButton: CupertinoActionSheetAction(
|
||||
child: Text('Cancel'.tr()),
|
||||
child: Text('Cancel'.tr),
|
||||
onPressed: () {
|
||||
Get.back();
|
||||
},
|
||||
|
||||
@@ -5,9 +5,9 @@ import 'package:customer/models/user_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
@@ -29,7 +29,7 @@ class DriverInboxScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Driver Inbox".tr(),
|
||||
"Driver Inbox".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -46,7 +46,7 @@ class DriverInboxScreen extends StatelessWidget {
|
||||
InboxModel inboxModel = InboxModel.fromJson(data!);
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
|
||||
UserModel? customer = await FireStoreUtils.getUserProfile(
|
||||
inboxModel.customerId.toString(),
|
||||
@@ -157,7 +157,7 @@ class DriverInboxScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
shrinkWrap: true,
|
||||
onEmpty: Constant.showEmptyView(message: "No Conversion found".tr()),
|
||||
onEmpty: Constant.showEmptyView(message: "No Conversion found".tr),
|
||||
// orderBy is compulsory to enable pagination
|
||||
query: FirebaseFirestore.instance
|
||||
.collection('chat_driver')
|
||||
|
||||
@@ -8,9 +8,9 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:customer/widget/firebase_pagination/src/fireStore_pagination.dart';
|
||||
import 'package:customer/widget/firebase_pagination/src/models/view_type.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
@@ -30,7 +30,7 @@ class RestaurantInboxScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Store Inbox".tr(),
|
||||
"Store Inbox".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -47,7 +47,7 @@ class RestaurantInboxScreen extends StatelessWidget {
|
||||
InboxModel inboxModel = InboxModel.fromJson(data!);
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
|
||||
UserModel? customer = await FireStoreUtils.getUserProfile(
|
||||
inboxModel.customerId.toString(),
|
||||
@@ -161,7 +161,7 @@ class RestaurantInboxScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
shrinkWrap: true,
|
||||
onEmpty: Constant.showEmptyView(message: "No Conversion found".tr()),
|
||||
onEmpty: Constant.showEmptyView(message: "No Conversion found".tr),
|
||||
// orderBy is compulsory to enable pagination
|
||||
query: FirebaseFirestore.instance
|
||||
.collection('chat_store')
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/dash_board_controller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
|
||||
class DashBoardScreen extends StatelessWidget {
|
||||
@@ -51,28 +51,28 @@ class DashBoardScreen extends StatelessWidget {
|
||||
isDark,
|
||||
index: 0,
|
||||
assetIcon: "assets/icons/ic_home.svg",
|
||||
label: 'Home'.tr(),
|
||||
label: 'Home'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
navigationBarItem(
|
||||
isDark,
|
||||
index: 1,
|
||||
assetIcon: "assets/icons/ic_fav.svg",
|
||||
label: 'Favourites'.tr(),
|
||||
label: 'Favourites'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
navigationBarItem(
|
||||
isDark,
|
||||
index: 2,
|
||||
assetIcon: "assets/icons/ic_orders.svg",
|
||||
label: 'Orders'.tr(),
|
||||
label: 'Orders'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
navigationBarItem(
|
||||
isDark,
|
||||
index: 3,
|
||||
assetIcon: "assets/icons/ic_profile.svg",
|
||||
label: 'Profile'.tr(),
|
||||
label: 'Profile'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
]
|
||||
@@ -81,35 +81,35 @@ class DashBoardScreen extends StatelessWidget {
|
||||
isDark,
|
||||
index: 0,
|
||||
assetIcon: "assets/icons/ic_home.svg",
|
||||
label: 'Home'.tr(),
|
||||
label: 'Home'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
navigationBarItem(
|
||||
isDark,
|
||||
index: 1,
|
||||
assetIcon: "assets/icons/ic_fav.svg",
|
||||
label: 'Favourites'.tr(),
|
||||
label: 'Favourites'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
navigationBarItem(
|
||||
isDark,
|
||||
index: 2,
|
||||
assetIcon: "assets/icons/ic_wallet.svg",
|
||||
label: 'Wallet'.tr(),
|
||||
label: 'Wallet'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
navigationBarItem(
|
||||
isDark,
|
||||
index: 3,
|
||||
assetIcon: "assets/icons/ic_orders.svg",
|
||||
label: 'Orders'.tr(),
|
||||
label: 'Orders'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
navigationBarItem(
|
||||
isDark,
|
||||
index: 4,
|
||||
assetIcon: "assets/icons/ic_profile.svg",
|
||||
label: 'Profile'.tr(),
|
||||
label: 'Profile'.tr,
|
||||
controller: controller,
|
||||
),
|
||||
],
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/dine_in_booking_details_controller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
@@ -26,7 +26,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
backgroundColor:
|
||||
isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
title: Text(
|
||||
"Dine in Bookings".tr(),
|
||||
"Dine in Bookings".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
@@ -50,7 +50,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"${'Order'.tr()} ${Constant.orderId(orderId: controller.bookingModel.value.id.toString())}",
|
||||
"${'Order'.tr} ${Constant.orderId(orderId: controller.bookingModel.value.id.toString())}",
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
color:
|
||||
@@ -62,7 +62,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${controller.bookingModel.value.totalGuest} ${'Peoples'.tr()}",
|
||||
"${controller.bookingModel.value.totalGuest} ${'Peoples'.tr}",
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color:
|
||||
@@ -200,7 +200,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"View in Map".tr(),
|
||||
"View in Map".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -245,7 +245,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
"Call Now".tr(),
|
||||
"Call Now".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -269,7 +269,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Booking Details".tr(),
|
||||
"Booking Details".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -300,7 +300,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Name".tr(),
|
||||
"Name".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -333,7 +333,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Phone number".tr(),
|
||||
"Phone number".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -366,7 +366,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Date and Time".tr(),
|
||||
"Date and Time".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -401,7 +401,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Guest".tr(),
|
||||
"Guest".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -434,7 +434,7 @@ class DineInBookingDetails extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Discount".tr(),
|
||||
"Discount".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
|
||||
@@ -3,10 +3,10 @@ import 'package:customer/controllers/dine_in_booking_controller.dart';
|
||||
import 'package:customer/models/dine_in_booking_model.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../themes/app_them_data.dart';
|
||||
import '../../../widget/my_separator.dart';
|
||||
@@ -29,7 +29,7 @@ class DineInBookingScreen extends StatelessWidget {
|
||||
backgroundColor:
|
||||
isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
title: Text(
|
||||
"Dine in Bookings".tr(),
|
||||
"Dine in Bookings".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
@@ -83,7 +83,7 @@ class DineInBookingScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"Upcoming".tr(),
|
||||
"Upcoming".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -126,7 +126,7 @@ class DineInBookingScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"History".tr(),
|
||||
"History".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -159,7 +159,7 @@ class DineInBookingScreen extends StatelessWidget {
|
||||
? controller.featureList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message:
|
||||
"Upcoming Booking not found.".tr(),
|
||||
"Upcoming Booking not found.".tr,
|
||||
)
|
||||
: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
@@ -182,7 +182,7 @@ class DineInBookingScreen extends StatelessWidget {
|
||||
)
|
||||
: controller.historyList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "History not found.".tr(),
|
||||
message: "History not found.".tr,
|
||||
)
|
||||
: ListView.builder(
|
||||
itemCount: controller.historyList.length,
|
||||
@@ -319,7 +319,7 @@ class DineInBookingScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Name".tr(),
|
||||
"Name".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -352,7 +352,7 @@ class DineInBookingScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Guest Number".tr(),
|
||||
"Guest Number".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
|
||||
@@ -5,10 +5,10 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
@@ -30,7 +30,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
backgroundColor:
|
||||
isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
title: Text(
|
||||
"Book Table".tr(),
|
||||
"Book Table".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
@@ -62,7 +62,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Numbers of Guests".tr(),
|
||||
"Numbers of Guests".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -159,7 +159,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"When are you visiting?".tr(),
|
||||
"When are you visiting?".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -239,7 +239,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
.toDate(),
|
||||
) ==
|
||||
0
|
||||
? "Today".tr()
|
||||
? "Today".tr
|
||||
: Constant.calculateDifference(
|
||||
controller
|
||||
.dateList[index]
|
||||
@@ -247,7 +247,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
.toDate(),
|
||||
) ==
|
||||
1
|
||||
? "Tomorrow".tr()
|
||||
? "Tomorrow".tr
|
||||
: DateFormat(
|
||||
'EEE',
|
||||
).format(
|
||||
@@ -309,7 +309,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
borderRadius: 10.r,
|
||||
title:
|
||||
"${controller.dateList[index].discountPer}%"
|
||||
.tr(),
|
||||
.tr,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
width: 12,
|
||||
@@ -325,7 +325,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Select time slot and scroll to see offers".tr(),
|
||||
"Select time slot and scroll to see offers".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -430,7 +430,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Special Occasion".tr(),
|
||||
"Special Occasion".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -447,7 +447,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
controller.selectedOccasion.value = "";
|
||||
},
|
||||
child: Text(
|
||||
"Clear".tr(),
|
||||
"Clear".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -490,7 +490,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
),
|
||||
dense: true,
|
||||
title: Text(
|
||||
//'${controller.occasionList[i]}'.tr(),
|
||||
//'${controller.occasionList[i]}'.tr,
|
||||
controller.getLocalizedOccasion(
|
||||
controller.occasionList[i],
|
||||
),
|
||||
@@ -529,7 +529,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
),
|
||||
dense: true,
|
||||
title: Text(
|
||||
'Is this your first visit?'.tr(),
|
||||
'Is this your first visit?'.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -558,7 +558,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Personal Details".tr(),
|
||||
"Personal Details".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -635,7 +635,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Additional Requests".tr(),
|
||||
"Additional Requests".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -647,7 +647,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
const SizedBox(height: 10),
|
||||
TextFieldWidget(
|
||||
controller: controller.additionRequestController.value,
|
||||
hintText: 'Add message here....'.tr(),
|
||||
hintText: 'Add message here....'.tr,
|
||||
maxLine: 5,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
@@ -662,7 +662,7 @@ class BookTableScreen extends StatelessWidget {
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "Book Now".tr(),
|
||||
title: "Book Now".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:customer/models/favourite_model.dart';
|
||||
import 'package:customer/models/vendor_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
@@ -13,7 +13,7 @@ import '../restaurant_details_screen/restaurant_details_screen.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import '../review_list_screen/review_list_screen.dart';
|
||||
import 'book_table_screen.dart';
|
||||
@@ -364,7 +364,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"${controller.vendorModel.value.reviewsCount} ${'Ratings'.tr()}",
|
||||
"${controller.vendorModel.value.reviewsCount} ${'Ratings'.tr}",
|
||||
style: TextStyle(
|
||||
decoration:
|
||||
TextDecoration.underline,
|
||||
@@ -385,8 +385,8 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Text(
|
||||
controller.isOpen.value
|
||||
? "Open".tr()
|
||||
: "Close".tr(),
|
||||
? "Open".tr
|
||||
: "Close".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -421,7 +421,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"View Timings".tr(),
|
||||
"View Timings".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -454,8 +454,8 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${Constant.amountShow(amount: controller.vendorModel.value.restaurantCost)} ${'for two'.tr()}"
|
||||
.tr(),
|
||||
"${Constant.amountShow(amount: controller.vendorModel.value.restaurantCost)} ${'for two'.tr}"
|
||||
.tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -477,7 +477,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Also applicable on food delivery".tr(),
|
||||
"Also applicable on food delivery".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -497,7 +497,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
if (Constant.userModel == null) {
|
||||
ShowToastDialog.showToast(
|
||||
"Please log in to the application. You are not logged in."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
} else {
|
||||
Get.to(
|
||||
@@ -570,7 +570,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
.start,
|
||||
children: [
|
||||
Text(
|
||||
"Table Booking".tr(),
|
||||
"Table Booking".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -588,7 +588,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Quick Conformations"
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -688,7 +688,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Text(
|
||||
"Available food delivery"
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -705,7 +705,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"in 30-45 mins.".tr(),
|
||||
"in 30-45 mins.".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -749,7 +749,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Menu".tr(),
|
||||
"Menu".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -832,7 +832,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Location, Timing & Costs".tr(),
|
||||
"Location, Timing & Costs".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -902,7 +902,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"View on Map".tr(),
|
||||
"View on Map".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
@@ -939,7 +939,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Timing".tr(),
|
||||
"Timing".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
@@ -956,7 +956,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
InkWell(
|
||||
onTap: () {},
|
||||
child: Text(
|
||||
"${controller.vendorModel.value.openDineTime == '' ? "10:00 AM" : controller.vendorModel.value.openDineTime.toString()} ${"To".tr()} ${controller.vendorModel.value.closeDineTime == '' ? "10:00 PM" : controller.vendorModel.value.closeDineTime.toString()}",
|
||||
"${controller.vendorModel.value.openDineTime == '' ? "10:00 AM" : controller.vendorModel.value.openDineTime.toString()} ${"To".tr} ${controller.vendorModel.value.closeDineTime == '' ? "10:00 PM" : controller.vendorModel.value.closeDineTime.toString()}",
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
@@ -1001,7 +1001,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Cost for Two".tr(),
|
||||
"Cost for Two".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
@@ -1016,7 +1016,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${Constant.amountShow(amount: controller.vendorModel.value.restaurantCost ?? "0.0")} ${'(approx)'.tr()}",
|
||||
"${Constant.amountShow(amount: controller.vendorModel.value.restaurantCost ?? "0.0")} ${'(approx)'.tr}",
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
@@ -1043,7 +1043,7 @@ class DineInDetailsScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Cuisines".tr(),
|
||||
"Cuisines".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../widget/restaurant_image_view.dart';
|
||||
|
||||
@@ -9,12 +9,13 @@ import 'package:customer/screen_ui/multi_vendor_service/dine_in_screeen/view_all
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../models/banner_model.dart';
|
||||
@@ -81,7 +82,7 @@ class DineInScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
"Dine-In Reservations".tr(),
|
||||
"Dine-In Reservations".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -94,7 +95,7 @@ class DineInScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Book a table at your favorite restaurant and enjoy a delightful dining experience."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
@@ -132,7 +133,7 @@ class DineInScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"No Store Found in Your Area".tr(),
|
||||
"No Store Found in Your Area".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -145,7 +146,7 @@ class DineInScreen extends StatelessWidget {
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"Currently, there are no available store in your zone. Try changing your location to find nearby options."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -159,7 +160,7 @@ class DineInScreen extends StatelessWidget {
|
||||
const SizedBox(height: 20),
|
||||
RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "Change Zone".tr(),
|
||||
title: "Change Zone".tr,
|
||||
width: 55,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
@@ -183,7 +184,7 @@ class DineInScreen extends StatelessWidget {
|
||||
const SizedBox(height: 10),
|
||||
titleView(
|
||||
isDark,
|
||||
"Explore the Categories".tr(),
|
||||
"Explore the Categories".tr,
|
||||
() {
|
||||
Get.to(const ViewAllCategoryDineInScreen());
|
||||
},
|
||||
@@ -219,7 +220,7 @@ class DineInScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"New Arrivals".tr(),
|
||||
"New Arrivals".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -245,7 +246,7 @@ class DineInScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"View all".tr(),
|
||||
"View all".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -317,7 +318,7 @@ class DineInScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"Popular Stores".tr(),
|
||||
"Popular Stores".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -358,7 +359,7 @@ class DineInScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"All Stores".tr(),
|
||||
"All Stores".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -426,7 +427,7 @@ class DineInScreen extends StatelessWidget {
|
||||
onPress!();
|
||||
},
|
||||
child: Text(
|
||||
"View all".tr(),
|
||||
"View all".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -1293,7 +1294,7 @@ class BannerBottomView extends StatelessWidget {
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
if (bannerModel.redirect_type == "store") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
VendorModel? vendorModel =
|
||||
await FireStoreUtils.getVendorById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
@@ -1305,7 +1306,7 @@ class BannerBottomView extends StatelessWidget {
|
||||
arguments: {"vendorModel": vendorModel},
|
||||
);
|
||||
} else if (bannerModel.redirect_type == "product") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
ProductModel? productModel =
|
||||
await FireStoreUtils.getProductById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
@@ -1325,7 +1326,7 @@ class BannerBottomView extends StatelessWidget {
|
||||
if (await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri);
|
||||
} else {
|
||||
ShowToastDialog.showToast("Could not launch".tr());
|
||||
ShowToastDialog.showToast("Could not launch".tr);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -3,9 +3,9 @@ import 'package:customer/controllers/view_all_category_controller.dart';
|
||||
import 'package:customer/models/vendor_category_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../home_screen/category_restaurant_screen.dart';
|
||||
|
||||
@@ -26,7 +26,7 @@ class ViewAllCategoryDineInScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Categories".tr(),
|
||||
"Categories".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
|
||||
@@ -6,11 +6,11 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
|
||||
@@ -38,7 +38,7 @@ class EditProfileScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Profile Information".tr(),
|
||||
"Profile Information".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color:
|
||||
@@ -49,7 +49,7 @@ class EditProfileScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"View and update your personal details, contact information, and preferences."
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -118,33 +118,33 @@ class EditProfileScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: TextFieldWidget(
|
||||
title: 'First Name'.tr(),
|
||||
title: 'First Name'.tr,
|
||||
controller: controller.firstNameController.value,
|
||||
hintText: 'First Name'.tr(),
|
||||
hintText: 'First Name'.tr,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: TextFieldWidget(
|
||||
title: 'Last Name'.tr(),
|
||||
title: 'Last Name'.tr,
|
||||
controller: controller.lastNameController.value,
|
||||
hintText: 'Last Name'.tr(),
|
||||
hintText: 'Last Name'.tr,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
TextFieldWidget(
|
||||
title: 'Email'.tr(),
|
||||
title: 'Email'.tr,
|
||||
textInputType: TextInputType.emailAddress,
|
||||
controller: controller.emailController.value,
|
||||
hintText: 'Email'.tr(),
|
||||
hintText: 'Email'.tr,
|
||||
enable: false,
|
||||
),
|
||||
TextFieldWidget(
|
||||
title: 'Phone Number'.tr(),
|
||||
title: 'Phone Number'.tr,
|
||||
textInputType: TextInputType.emailAddress,
|
||||
controller: controller.phoneNumberController.value,
|
||||
hintText: 'Phone Number'.tr(),
|
||||
hintText: 'Phone Number'.tr,
|
||||
enable: false,
|
||||
),
|
||||
],
|
||||
@@ -158,7 +158,7 @@ class EditProfileScreen extends StatelessWidget {
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
borderRadius: 10.r,
|
||||
title: "Save Details".tr(),
|
||||
title: "Save Details".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
@@ -191,7 +191,7 @@ class EditProfileScreen extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 15),
|
||||
child: Text(
|
||||
"please select".tr(),
|
||||
"please select".tr,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
@@ -217,7 +217,7 @@ class EditProfileScreen extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 3),
|
||||
child: Text(
|
||||
"camera".tr(),
|
||||
"camera".tr,
|
||||
style: const TextStyle(),
|
||||
),
|
||||
),
|
||||
@@ -243,7 +243,7 @@ class EditProfileScreen extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 3),
|
||||
child: Text(
|
||||
"gallery".tr(),
|
||||
"gallery".tr,
|
||||
style: const TextStyle(),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -7,12 +7,13 @@ import 'package:customer/models/vendor_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
import '../../../widget/restaurant_image_view.dart';
|
||||
@@ -47,7 +48,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Your Favourites, All in One Place".tr(),
|
||||
"Your Favourites, All in One Place".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color:
|
||||
@@ -83,7 +84,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"Please Log In to Continue".tr(),
|
||||
"Please Log In to Continue".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -96,7 +97,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"You’re not logged in. Please sign in to access your account and explore all features."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -109,7 +110,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
RoundedButtonFill(
|
||||
title: "Log in".tr(),
|
||||
title: "Log in".tr,
|
||||
width: 55,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
@@ -174,8 +175,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"Favourite Store"
|
||||
.tr(),
|
||||
"Favourite Store".tr,
|
||||
textAlign:
|
||||
TextAlign.center,
|
||||
style: TextStyle(
|
||||
@@ -226,7 +226,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"Favourite Item".tr(),
|
||||
"Favourite Item".tr,
|
||||
textAlign:
|
||||
TextAlign.center,
|
||||
style: TextStyle(
|
||||
@@ -275,7 +275,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
? Constant.showEmptyView(
|
||||
message:
|
||||
"Favourite Store not found."
|
||||
.tr(),
|
||||
.tr,
|
||||
)
|
||||
: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
@@ -501,7 +501,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
5,
|
||||
),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
fontSize:
|
||||
14,
|
||||
@@ -699,7 +699,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
? Constant.showEmptyView(
|
||||
message:
|
||||
"Favourite Item not found."
|
||||
.tr(),
|
||||
.tr,
|
||||
)
|
||||
: ListView.builder(
|
||||
itemCount:
|
||||
@@ -734,7 +734,7 @@ class FavouriteScreen extends StatelessWidget {
|
||||
.hasError) {
|
||||
return Center(
|
||||
child: Text(
|
||||
'${"error".tr()}: ${snapshot.error}',
|
||||
'${"error".tr}: ${snapshot.error}',
|
||||
),
|
||||
);
|
||||
} else if (snapshot
|
||||
@@ -833,8 +833,8 @@ class FavouriteScreen extends StatelessWidget {
|
||||
Text(
|
||||
productModel.nonveg ==
|
||||
true
|
||||
? "Non Veg.".tr()
|
||||
: "Pure veg.".tr(),
|
||||
? "Non Veg.".tr
|
||||
: "Pure veg.".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
productModel.nonveg ==
|
||||
|
||||
@@ -2,10 +2,10 @@ import 'package:customer/controllers/forgot_password_controller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
|
||||
@@ -30,7 +30,7 @@ class ForgotPasswordScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Forgot Password".tr(),
|
||||
"Forgot Password".tr,
|
||||
style: TextStyle(
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
fontSize: 22,
|
||||
@@ -38,7 +38,7 @@ class ForgotPasswordScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"No worries!! We’ll send you reset instructions".tr(),
|
||||
"No worries!! We’ll send you reset instructions".tr,
|
||||
style: TextStyle(
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey500,
|
||||
fontSize: 16,
|
||||
@@ -47,9 +47,9 @@ class ForgotPasswordScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
TextFieldWidget(
|
||||
title: 'Email Address'.tr(),
|
||||
title: 'Email Address'.tr,
|
||||
controller: controller.emailEditingController.value,
|
||||
hintText: 'Enter email address'.tr(),
|
||||
hintText: 'Enter email address'.tr,
|
||||
prefix: Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: SvgPicture.asset(
|
||||
@@ -63,16 +63,14 @@ class ForgotPasswordScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
RoundedButtonFill(
|
||||
title: "Forgot Password".tr(),
|
||||
title: "Forgot Password".tr,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
onPress: () async {
|
||||
if (controller.emailEditingController.value.text
|
||||
.trim()
|
||||
.isEmpty) {
|
||||
ShowToastDialog.showToast(
|
||||
"Please enter valid email".tr(),
|
||||
);
|
||||
ShowToastDialog.showToast("Please enter valid email".tr);
|
||||
} else {
|
||||
controller.forgotPassword();
|
||||
}
|
||||
|
||||
@@ -8,11 +8,11 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
import 'history_gift_card.dart';
|
||||
@@ -34,7 +34,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Customize Gift Card".tr(),
|
||||
"Customize Gift Card".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -131,9 +131,9 @@ class GiftCardScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
TextFieldWidget(
|
||||
title: 'Choose an amount'.tr(),
|
||||
title: 'Choose an amount'.tr,
|
||||
controller: controller.amountController.value,
|
||||
hintText: 'Enter gift card amount'.tr(),
|
||||
hintText: 'Enter gift card amount'.tr,
|
||||
textInputType:
|
||||
const TextInputType.numberWithOptions(
|
||||
signed: true,
|
||||
@@ -151,7 +151,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
vertical: 14,
|
||||
),
|
||||
child: Text(
|
||||
Constant.currencyModel!.symbol.tr(),
|
||||
Constant.currencyModel!.symbol.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -233,9 +233,9 @@ class GiftCardScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 40),
|
||||
TextFieldWidget(
|
||||
title: 'Add Message (Optional)'.tr(),
|
||||
title: 'Add Message (Optional)'.tr,
|
||||
controller: controller.messageController.value,
|
||||
hintText: 'Add message here....'.tr(),
|
||||
hintText: 'Add message here....'.tr,
|
||||
maxLine: 6,
|
||||
),
|
||||
],
|
||||
@@ -248,7 +248,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
title: "Continue".tr(),
|
||||
title: "Continue".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
@@ -258,13 +258,13 @@ class GiftCardScreen extends StatelessWidget {
|
||||
if (Constant.userModel == null) {
|
||||
ShowToastDialog.showToast(
|
||||
"Please log in to the application. You are not logged in."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
} else {
|
||||
giftCardBottomSheet(context, controller);
|
||||
}
|
||||
} else {
|
||||
ShowToastDialog.showToast("Please enter Amount".tr());
|
||||
ShowToastDialog.showToast("Please enter Amount".tr);
|
||||
}
|
||||
},
|
||||
),
|
||||
@@ -330,7 +330,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
),
|
||||
child: Text(
|
||||
'Complete payment and share this e-gift card with loved ones using any app'
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
color: AppThemeData.ecommerce300,
|
||||
fontSize: 14,
|
||||
@@ -344,7 +344,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Bill Details".tr(),
|
||||
"Bill Details".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -380,7 +380,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Sub Total".tr(),
|
||||
"Sub Total".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -422,7 +422,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Grand Total".tr(),
|
||||
"Grand Total".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -466,8 +466,8 @@ class GiftCardScreen extends StatelessWidget {
|
||||
const SizedBox(height: 20),
|
||||
Center(
|
||||
child: Text(
|
||||
"${'Gift Card expire'.tr()} ${controller.selectedGiftCard.value.expiryDay} ${'days after purchase'.tr()}"
|
||||
.tr(),
|
||||
"${'Gift Card expire'.tr} ${controller.selectedGiftCard.value.expiryDay} ${'days after purchase'.tr}"
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -494,7 +494,7 @@ class GiftCardScreen extends StatelessWidget {
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
title:
|
||||
"${'Pay'.tr()} ${Constant.amountShow(amount: controller.amountController.value.text)}",
|
||||
"${'Pay'.tr} ${Constant.amountShow(amount: controller.amountController.value.text)}",
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
|
||||
@@ -2,9 +2,9 @@ import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/history_gift_card_controller.dart';
|
||||
import 'package:customer/models/gift_cards_order_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../widget/my_separator.dart';
|
||||
|
||||
@@ -33,7 +33,7 @@ class HistoryGiftCard extends StatelessWidget {
|
||||
child:
|
||||
controller.giftCardsOrderList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Purchased Gift card not found".tr(),
|
||||
message: "Purchased Gift card not found".tr,
|
||||
)
|
||||
: ListView.builder(
|
||||
itemCount: controller.giftCardsOrderList.length,
|
||||
@@ -111,7 +111,7 @@ class HistoryGiftCard extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Gift Code".tr(),
|
||||
"Gift Code".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -150,7 +150,7 @@ class HistoryGiftCard extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Gift Pin".tr(),
|
||||
"Gift Pin".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -272,7 +272,7 @@ class HistoryGiftCard extends StatelessWidget {
|
||||
MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
'Share'.tr(),
|
||||
'Share'.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -298,8 +298,8 @@ class HistoryGiftCard extends StatelessWidget {
|
||||
const Expanded(child: SizedBox()),
|
||||
Text(
|
||||
giftCardOrderModel.redeem == true
|
||||
? "Redeemed".tr()
|
||||
: "Not Redeem".tr(),
|
||||
? "Redeemed".tr
|
||||
: "Not Redeem".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
|
||||
@@ -7,11 +7,12 @@ import 'package:customer/models/wallet_transaction_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
import '../dash_board_screens/dash_board_screen.dart';
|
||||
@@ -43,7 +44,7 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Redeem Gift Card".tr(),
|
||||
"Redeem Gift Card".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color:
|
||||
@@ -54,7 +55,7 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Enter your gift card code to enjoy discounts and special offers on your orders."
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -65,9 +66,9 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
TextFieldWidget(
|
||||
title: 'Gift Code'.tr(),
|
||||
title: 'Gift Code'.tr,
|
||||
controller: controller.giftCodeController.value,
|
||||
hintText: 'Enter gift code'.tr(),
|
||||
hintText: 'Enter gift code'.tr,
|
||||
textInputType: TextInputType.number,
|
||||
prefix: Padding(
|
||||
padding: const EdgeInsets.all(10),
|
||||
@@ -75,9 +76,9 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
TextFieldWidget(
|
||||
title: 'Gift Pin'.tr(),
|
||||
title: 'Gift Pin'.tr,
|
||||
controller: controller.giftPinController.value,
|
||||
hintText: 'Enter gift pin'.tr(),
|
||||
hintText: 'Enter gift pin'.tr,
|
||||
textInputType: TextInputType.number,
|
||||
prefix: Padding(
|
||||
padding: const EdgeInsets.all(10),
|
||||
@@ -94,18 +95,18 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
title: "Redeem".tr(),
|
||||
title: "Redeem".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
fontSizes: 16,
|
||||
onPress: () async {
|
||||
if (controller.giftCodeController.value.text.isEmpty) {
|
||||
ShowToastDialog.showToast("Please Enter Gift Code".tr());
|
||||
ShowToastDialog.showToast("Please Enter Gift Code".tr);
|
||||
} else if (controller.giftPinController.value.text.isEmpty) {
|
||||
ShowToastDialog.showToast("Please Enter Gift Pin".tr());
|
||||
ShowToastDialog.showToast("Please Enter Gift Pin".tr);
|
||||
} else {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
await FireStoreUtils.checkRedeemCode(
|
||||
controller.giftCodeController.value.text.replaceAll(
|
||||
" ",
|
||||
@@ -117,17 +118,17 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
if (giftCodeModel.redeem == true) {
|
||||
ShowToastDialog.closeLoader();
|
||||
ShowToastDialog.showToast(
|
||||
"Gift voucher already redeemed".tr(),
|
||||
"Gift voucher already redeemed".tr,
|
||||
);
|
||||
} else if (giftCodeModel.giftPin !=
|
||||
controller.giftPinController.value.text) {
|
||||
ShowToastDialog.closeLoader();
|
||||
ShowToastDialog.showToast("Gift Pin Invalid".tr());
|
||||
ShowToastDialog.showToast("Gift Pin Invalid".tr);
|
||||
} else if (giftCodeModel.expireDate!.toDate().isBefore(
|
||||
DateTime.now(),
|
||||
)) {
|
||||
ShowToastDialog.closeLoader();
|
||||
ShowToastDialog.showToast("Gift Voucher expire".tr());
|
||||
ShowToastDialog.showToast("Gift Voucher expire".tr);
|
||||
} else {
|
||||
giftCodeModel.redeem = true;
|
||||
|
||||
@@ -171,7 +172,7 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
controller.selectedIndex.value = 2;
|
||||
}
|
||||
ShowToastDialog.showToast(
|
||||
"Voucher redeem successfully".tr(),
|
||||
"Voucher redeem successfully".tr,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -180,7 +181,7 @@ class RedeemGiftCardScreen extends StatelessWidget {
|
||||
}
|
||||
} else {
|
||||
ShowToastDialog.closeLoader();
|
||||
ShowToastDialog.showToast("Invalid Gift Code".tr());
|
||||
ShowToastDialog.showToast("Invalid Gift Code".tr);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@ import 'package:customer/payment/createRazorPayOrderModel.dart';
|
||||
import 'package:customer/payment/rozorpayConroller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
import '../wallet_screen/wallet_screen.dart';
|
||||
@@ -30,7 +30,7 @@ class SelectGiftPaymentScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Payment Option".tr(),
|
||||
"Payment Option".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -46,7 +46,7 @@ class SelectGiftPaymentScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Preferred Payment".tr(),
|
||||
"Preferred Payment".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -102,7 +102,7 @@ class SelectGiftPaymentScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Other Payment Options".tr(),
|
||||
"Other Payment Options".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -261,7 +261,7 @@ class SelectGiftPaymentScreen extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
title: "Pay Now".tr(),
|
||||
title: "Pay Now".tr,
|
||||
height: 5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
@@ -335,8 +335,7 @@ class SelectGiftPaymentScreen extends StatelessWidget {
|
||||
if (value == null) {
|
||||
Get.back();
|
||||
ShowToastDialog.showToast(
|
||||
"Something went wrong, please contact admin."
|
||||
.tr(),
|
||||
"Something went wrong, please contact admin.".tr,
|
||||
);
|
||||
} else {
|
||||
CreateRazorPayOrderModel result = value;
|
||||
@@ -348,7 +347,7 @@ class SelectGiftPaymentScreen extends StatelessWidget {
|
||||
});
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Please select payment method".tr(),
|
||||
"Please select payment method".tr,
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -3,10 +3,10 @@ import 'package:customer/controllers/category_restaurant_controller.dart';
|
||||
import 'package:customer/models/vendor_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../widget/restaurant_image_view.dart';
|
||||
import '../restaurant_details_screen/restaurant_details_screen.dart';
|
||||
@@ -32,7 +32,7 @@ class CategoryRestaurantScreen extends StatelessWidget {
|
||||
controller.isLoading.value
|
||||
? Constant.loader()
|
||||
: controller.allNearestRestaurant.isEmpty
|
||||
? Constant.showEmptyView(message: "No Restaurant found".tr())
|
||||
? Constant.showEmptyView(message: "No Restaurant found".tr)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: ListView.builder(
|
||||
@@ -144,7 +144,7 @@ class CategoryRestaurantScreen extends StatelessWidget {
|
||||
width: 5,
|
||||
),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color:
|
||||
|
||||
@@ -6,10 +6,10 @@ import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:dotted_border/dotted_border.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../restaurant_details_screen/restaurant_details_screen.dart';
|
||||
|
||||
@@ -131,7 +131,7 @@ class DiscountRestaurantListScreen extends StatelessWidget {
|
||||
vertical: 4,
|
||||
),
|
||||
child: Text(
|
||||
"${offerModel.discountType == "Fix Price" ? Constant.currencyModel!.symbol : ""}${offerModel.discount}${offerModel.discountType == "Percentage" ? "% off".toUpperCase().tr() : " off".toUpperCase().tr()}",
|
||||
"${offerModel.discountType == "Fix Price" ? Constant.currencyModel!.symbol : ""}${offerModel.discount}${offerModel.discountType == "Percentage" ? "% off".toUpperCase().tr : " off".toUpperCase().tr}",
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
|
||||
@@ -17,19 +17,20 @@ import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/custom_dialog_box.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:customer/utils/preferences.dart';
|
||||
import 'package:customer/widget/osm_map/map_picker_page.dart';
|
||||
import 'package:customer/widget/place_picker/location_picker_screen.dart';
|
||||
import 'package:customer/widget/place_picker/selected_location_model.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_map/flutter_map.dart' as flutterMap;
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:geocoding/geocoding.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import 'package:latlong2/latlong.dart' as location;
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
@@ -93,7 +94,7 @@ class HomeScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"No Store Found in Your Area".tr(),
|
||||
"No Store Found in Your Area".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -106,7 +107,7 @@ class HomeScreen extends StatelessWidget {
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"Currently, there are no available store in your zone. Try changing your location to find nearby options."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -119,7 +120,7 @@ class HomeScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
RoundedButtonFill(
|
||||
title: "Change Zone".tr(),
|
||||
title: "Change Zone".tr,
|
||||
width: 55,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
@@ -230,7 +231,7 @@ class HomeScreen extends StatelessWidget {
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader(
|
||||
"Please wait..."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
|
||||
// ✅ declare it once here!
|
||||
@@ -517,7 +518,7 @@ class HomeScreen extends StatelessWidget {
|
||||
true
|
||||
? 'Искать что угодно'
|
||||
: 'Search the store, item and more...'
|
||||
.tr(),
|
||||
.tr,
|
||||
controller: null,
|
||||
enable: false,
|
||||
backgroundColor:
|
||||
@@ -705,8 +706,7 @@ class HomeScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"New Arrivals"
|
||||
.tr(),
|
||||
"New Arrivals".tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.start,
|
||||
@@ -741,7 +741,7 @@ class HomeScreen extends StatelessWidget {
|
||||
});
|
||||
},
|
||||
child: Text(
|
||||
"View all".tr(),
|
||||
"View all".tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.center,
|
||||
@@ -823,7 +823,7 @@ class HomeScreen extends StatelessWidget {
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Highlights for you"
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.start,
|
||||
@@ -853,7 +853,7 @@ class HomeScreen extends StatelessWidget {
|
||||
},
|
||||
child: Text(
|
||||
"View all"
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.center,
|
||||
@@ -969,7 +969,7 @@ class HomeScreen extends StatelessWidget {
|
||||
),
|
||||
child: Text(
|
||||
"Popular Stores"
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.center,
|
||||
@@ -1022,7 +1022,7 @@ class HomeScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"All Stores".tr(),
|
||||
"All Stores".tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.center,
|
||||
@@ -1210,16 +1210,16 @@ class HomeScreen extends StatelessWidget {
|
||||
isDark
|
||||
? AppThemeData.greyDark100
|
||||
: AppThemeData.grey100,
|
||||
value: controller.selectedOrderTypeValue.value.tr(),
|
||||
value: controller.selectedOrderTypeValue.value.tr,
|
||||
icon: const Icon(Icons.keyboard_arrow_down),
|
||||
items:
|
||||
<String>['Delivery'.tr(), 'TakeAway'.tr()].map((
|
||||
<String>['Delivery'.tr, 'TakeAway'.tr].map((
|
||||
String value,
|
||||
) {
|
||||
return DropdownMenuItem<String>(
|
||||
value: value,
|
||||
child: Text(
|
||||
value.tr(),
|
||||
value.tr,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 16,
|
||||
@@ -1244,12 +1244,12 @@ class HomeScreen extends StatelessWidget {
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return CustomDialogBox(
|
||||
title: "Alert".tr(),
|
||||
title: "Alert".tr,
|
||||
descriptions:
|
||||
"Do you really want to change the delivery option? Your cart will be empty."
|
||||
.tr(),
|
||||
positiveString: "Ok".tr(),
|
||||
negativeString: "Cancel".tr(),
|
||||
.tr,
|
||||
positiveString: "Ok".tr,
|
||||
negativeString: "Cancel".tr,
|
||||
positiveClick: () async {
|
||||
await Preferences.setString(
|
||||
Preferences.foodDeliveryType,
|
||||
@@ -1289,7 +1289,7 @@ class HomeScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
name.tr(),
|
||||
name.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.bold,
|
||||
@@ -1302,7 +1302,7 @@ class HomeScreen extends StatelessWidget {
|
||||
onPress!();
|
||||
},
|
||||
child: Text(
|
||||
"View all".tr(),
|
||||
"View all".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -1476,7 +1476,7 @@ class PopularRestaurant extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color: AppThemeData.carRent600,
|
||||
@@ -1781,7 +1781,7 @@ class AllRestaurant extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color: AppThemeData.carRent600,
|
||||
@@ -2078,7 +2078,7 @@ class NewArrival extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -2188,7 +2188,7 @@ class AdvertisementHomeCard extends StatelessWidget {
|
||||
final isDark = themeController.isDark.value;
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
VendorModel? vendorModel = await FireStoreUtils.getVendorById(
|
||||
model.vendorId!,
|
||||
);
|
||||
@@ -2501,7 +2501,7 @@ class OfferView extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Upto".tr(),
|
||||
"Upto".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -2516,7 +2516,7 @@ class OfferView extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${offerModel.discountType == "Fix Price" ? Constant.currencyModel!.symbol : ""}${offerModel.discount}${offerModel.discountType == "Percentage" ? "% off".tr() : "off".tr()}",
|
||||
"${offerModel.discountType == "Fix Price" ? Constant.currencyModel!.symbol : ""}${offerModel.discount}${offerModel.discountType == "Percentage" ? "% off".tr : "off".tr}",
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -2565,7 +2565,7 @@ class OfferView extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -2651,7 +2651,7 @@ class BannerView extends StatelessWidget {
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
if (bannerModel.redirect_type == "store") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
VendorModel? vendorModel =
|
||||
await FireStoreUtils.getVendorById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
@@ -2663,7 +2663,7 @@ class BannerView extends StatelessWidget {
|
||||
arguments: {"vendorModel": vendorModel},
|
||||
);
|
||||
} else if (bannerModel.redirect_type == "product") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
ProductModel? productModel =
|
||||
await FireStoreUtils.getProductById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
@@ -2683,7 +2683,7 @@ class BannerView extends StatelessWidget {
|
||||
if (await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri);
|
||||
} else {
|
||||
ShowToastDialog.showToast("Could not launch".tr());
|
||||
ShowToastDialog.showToast("Could not launch".tr);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2757,7 +2757,7 @@ class BannerBottomView extends StatelessWidget {
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
if (bannerModel.redirect_type == "store") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
VendorModel? vendorModel =
|
||||
await FireStoreUtils.getVendorById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
@@ -2769,7 +2769,7 @@ class BannerBottomView extends StatelessWidget {
|
||||
arguments: {"vendorModel": vendorModel},
|
||||
);
|
||||
} else if (bannerModel.redirect_type == "product") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
ProductModel? productModel =
|
||||
await FireStoreUtils.getProductById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
@@ -2789,7 +2789,7 @@ class BannerBottomView extends StatelessWidget {
|
||||
if (await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri);
|
||||
} else {
|
||||
ShowToastDialog.showToast("Could not launch".tr());
|
||||
ShowToastDialog.showToast("Could not launch".tr);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2973,7 +2973,7 @@ class StoryView extends StatelessWidget {
|
||||
if (snapshot.hasError) {
|
||||
return Center(
|
||||
child: Text(
|
||||
'${"Error".tr()}: ${snapshot.error}',
|
||||
'${"Error".tr}: ${snapshot.error}',
|
||||
),
|
||||
);
|
||||
} else if (snapshot.data == null) {
|
||||
@@ -3401,7 +3401,7 @@ class MapView extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Free Delivery"
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize:
|
||||
14,
|
||||
|
||||
@@ -18,17 +18,18 @@ import 'package:customer/themes/custom_dialog_box.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:customer/utils/preferences.dart';
|
||||
import 'package:customer/widget/osm_map/map_picker_page.dart';
|
||||
import 'package:customer/widget/place_picker/location_picker_screen.dart';
|
||||
import 'package:customer/widget/place_picker/selected_location_model.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:geocoding/geocoding.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../models/banner_model.dart';
|
||||
@@ -73,7 +74,7 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
Image.asset("assets/images/location.gif", height: 120),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"No Store Found in Your Area".tr(),
|
||||
"No Store Found in Your Area".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -86,7 +87,7 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"Currently, there are no available store in your zone. Try changing your location to find nearby options."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -99,7 +100,7 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
RoundedButtonFill(
|
||||
title: "Change Zone".tr(),
|
||||
title: "Change Zone".tr,
|
||||
width: 55,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
@@ -159,7 +160,7 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"Login".tr(),
|
||||
"Login".tr,
|
||||
textAlign:
|
||||
TextAlign.center,
|
||||
style: TextStyle(
|
||||
@@ -213,8 +214,7 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
Constant.checkPermission(
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader(
|
||||
"Please wait..."
|
||||
.tr(),
|
||||
"Please wait...".tr,
|
||||
);
|
||||
|
||||
// ✅ declare once for whole method
|
||||
@@ -442,9 +442,9 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
) ==
|
||||
true
|
||||
? 'Search the dish, foo and more...'
|
||||
.tr()
|
||||
.tr
|
||||
: 'Search the store, item and more...'
|
||||
.tr(),
|
||||
.tr,
|
||||
controller: null,
|
||||
enable: false,
|
||||
prefix: Padding(
|
||||
@@ -564,7 +564,7 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Highlights for you"
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.start,
|
||||
@@ -594,7 +594,7 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
},
|
||||
child: Text(
|
||||
"See all"
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign:
|
||||
TextAlign
|
||||
.center,
|
||||
@@ -786,16 +786,16 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
DropdownButton<String>(
|
||||
isDense: false,
|
||||
underline: const SizedBox(),
|
||||
value: controller.selectedOrderTypeValue.value.tr(),
|
||||
value: controller.selectedOrderTypeValue.value.tr,
|
||||
icon: const Icon(Icons.keyboard_arrow_down),
|
||||
items:
|
||||
<String>['Delivery'.tr(), 'TakeAway'.tr()].map((
|
||||
<String>['Delivery'.tr, 'TakeAway'.tr].map((
|
||||
String value,
|
||||
) {
|
||||
return DropdownMenuItem<String>(
|
||||
value: value,
|
||||
child: Text(
|
||||
value.tr(),
|
||||
value.tr,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 16,
|
||||
@@ -820,12 +820,12 @@ class HomeScreenTwo extends StatelessWidget {
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return CustomDialogBox(
|
||||
title: "Alert".tr(),
|
||||
title: "Alert".tr,
|
||||
descriptions:
|
||||
"Do you really want to change the delivery option? Your cart will be empty."
|
||||
.tr(),
|
||||
positiveString: "Ok".tr(),
|
||||
negativeString: "Cancel".tr(),
|
||||
.tr,
|
||||
positiveString: "Ok".tr,
|
||||
negativeString: "Cancel".tr,
|
||||
positiveClick: () async {
|
||||
await Preferences.setString(
|
||||
Preferences.foodDeliveryType,
|
||||
@@ -887,7 +887,7 @@ class CategoryView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Our Categories".tr(),
|
||||
"Our Categories".tr,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
color:
|
||||
@@ -903,7 +903,7 @@ class CategoryView extends StatelessWidget {
|
||||
Get.to(const ViewAllCategoryScreen());
|
||||
},
|
||||
child: Text(
|
||||
"See all".tr(),
|
||||
"See all".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -918,7 +918,7 @@ class CategoryView extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
GradientText(
|
||||
'Best Servings Food'.tr(),
|
||||
'Best Servings Food'.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
fontFamily: 'Inter Tight',
|
||||
@@ -1022,7 +1022,7 @@ class OfferView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Large Discounts".tr(),
|
||||
"Large Discounts".tr,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
color:
|
||||
@@ -1045,7 +1045,7 @@ class OfferView extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"See all".tr(),
|
||||
"See all".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -1060,7 +1060,7 @@ class OfferView extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
GradientText(
|
||||
'Save Upto 50% Off'.tr(),
|
||||
'Save Upto 50% Off'.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
fontFamily: 'Inter Tight',
|
||||
@@ -1152,7 +1152,7 @@ class OfferView extends StatelessWidget {
|
||||
const SizedBox(height: 5),
|
||||
RoundedButtonFill(
|
||||
title:
|
||||
"${offerModel.discountType == "Fix Price" ? Constant.currencyModel!.symbol : ""}${offerModel.discount}${offerModel.discountType == "Percentage" ? "% off".tr() : "off".tr()}",
|
||||
"${offerModel.discountType == "Fix Price" ? Constant.currencyModel!.symbol : ""}${offerModel.discount}${offerModel.discountType == "Percentage" ? "% off".tr : "off".tr}",
|
||||
color:
|
||||
Colors.primaries[Random().nextInt(
|
||||
Colors.primaries.length,
|
||||
@@ -1207,7 +1207,7 @@ class BannerView extends StatelessWidget {
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
if (bannerModel.redirect_type == "store") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
VendorModel? vendorModel = await FireStoreUtils.getVendorById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
);
|
||||
@@ -1218,7 +1218,7 @@ class BannerView extends StatelessWidget {
|
||||
arguments: {"vendorModel": vendorModel},
|
||||
);
|
||||
} else if (bannerModel.redirect_type == "product") {
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
ProductModel? productModel =
|
||||
await FireStoreUtils.getProductById(
|
||||
bannerModel.redirect_id.toString(),
|
||||
@@ -1237,7 +1237,7 @@ class BannerView extends StatelessWidget {
|
||||
if (await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri);
|
||||
} else {
|
||||
ShowToastDialog.showToast("Could not launch".tr());
|
||||
ShowToastDialog.showToast("Could not launch".tr);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1288,7 +1288,7 @@ class StoryView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Stories".tr(),
|
||||
"Stories".tr,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
color:
|
||||
@@ -1302,7 +1302,7 @@ class StoryView extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
GradientText(
|
||||
'Best Food Stories Ever'.tr(),
|
||||
'Best Food Stories Ever'.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
fontFamily: 'Inter Tight',
|
||||
@@ -1370,7 +1370,7 @@ class StoryView extends StatelessWidget {
|
||||
if (snapshot.hasError) {
|
||||
return Center(
|
||||
child: Text(
|
||||
'${"Error".tr()}: ${snapshot.error}',
|
||||
'${"Error".tr}: ${snapshot.error}',
|
||||
),
|
||||
);
|
||||
} else if (snapshot.data == null) {
|
||||
@@ -1423,7 +1423,7 @@ class StoryView extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"${Constant.calculateReview(reviewCount: vendorModel.reviewsCount.toString(), reviewSum: vendorModel.reviewsSum!.toStringAsFixed(0))} ${'reviews'.tr()}",
|
||||
"${Constant.calculateReview(reviewCount: vendorModel.reviewsCount.toString(), reviewSum: vendorModel.reviewsSum!.toStringAsFixed(0))} ${'reviews'.tr}",
|
||||
textAlign:
|
||||
TextAlign.center,
|
||||
maxLines: 1,
|
||||
@@ -1491,7 +1491,7 @@ class RestaurantView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Best Restaurants".tr(),
|
||||
"Best Restaurants".tr,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
color:
|
||||
@@ -1511,7 +1511,7 @@ class RestaurantView extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"See all".tr(),
|
||||
"See all".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -1613,7 +1613,7 @@ class RestaurantView extends StatelessWidget {
|
||||
CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
"Upto".tr(),
|
||||
"Upto".tr,
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -1632,7 +1632,7 @@ class RestaurantView extends StatelessWidget {
|
||||
discountAmountTempList
|
||||
.reduce(min)
|
||||
.toString() +
|
||||
"% OFF".tr(),
|
||||
"% OFF".tr,
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -1707,7 +1707,7 @@ class RestaurantView extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
overflow:
|
||||
TextOverflow.ellipsis,
|
||||
|
||||
@@ -4,11 +4,11 @@ import 'package:customer/models/favourite_model.dart';
|
||||
import 'package:customer/models/vendor_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../widget/restaurant_image_view.dart';
|
||||
import '../restaurant_details_screen/restaurant_details_screen.dart';
|
||||
@@ -217,7 +217,7 @@ class RestaurantListScreen extends StatelessWidget {
|
||||
width: 5,
|
||||
),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color:
|
||||
|
||||
@@ -5,10 +5,10 @@ import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:customer/widget/story_view/controller/story_controller.dart';
|
||||
import 'package:customer/widget/story_view/utils.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../widget/story_view/widgets/story_view.dart';
|
||||
import '../restaurant_details_screen/restaurant_details_screen.dart';
|
||||
@@ -117,7 +117,7 @@ class MoreStoriesState extends State<MoreStories> {
|
||||
} else {
|
||||
if (snapshot.hasError) {
|
||||
return Center(
|
||||
child: Text('${"Error".tr()}: ${snapshot.error}'),
|
||||
child: Text('${"Error".tr}: ${snapshot.error}'),
|
||||
);
|
||||
return Center(child: Text('Error: ${snapshot.error}'));
|
||||
} else if (snapshot.data == null) {
|
||||
@@ -167,7 +167,7 @@ class MoreStoriesState extends State<MoreStories> {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"${Constant.calculateReview(reviewCount: vendorModel.reviewsCount.toString(), reviewSum: vendorModel.reviewsSum.toString())} ${'reviews'.tr()}",
|
||||
"${Constant.calculateReview(reviewCount: vendorModel.reviewsCount.toString(), reviewSum: vendorModel.reviewsSum.toString())} ${'reviews'.tr}",
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 1,
|
||||
style: const TextStyle(
|
||||
|
||||
@@ -3,9 +3,9 @@ import 'package:customer/controllers/view_all_category_controller.dart';
|
||||
import 'package:customer/models/vendor_category_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import 'category_restaurant_screen.dart';
|
||||
|
||||
@@ -26,7 +26,7 @@ class ViewAllCategoryScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Categories".tr(),
|
||||
"Categories".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/controllers/live_tracking_controller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_map/flutter_map.dart' as flutterMap;
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart' as gmap;
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
|
||||
@@ -29,7 +29,7 @@ class LiveTrackingScreen extends StatelessWidget {
|
||||
appBar: AppBar(
|
||||
backgroundColor:
|
||||
isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
title: Text("Live Tracking".tr()),
|
||||
title: Text("Live Tracking".tr),
|
||||
centerTitle: false,
|
||||
),
|
||||
body:
|
||||
|
||||
@@ -8,10 +8,10 @@ import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:timelines_plus/timelines_plus.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
@@ -41,7 +41,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Order Details".tr(),
|
||||
"Order Details".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -67,8 +67,8 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"${'Order'.tr()} ${Constant.orderId(orderId: controller.orderModel.value.id.toString())}"
|
||||
.tr(),
|
||||
"${'Order'.tr} ${Constant.orderId(orderId: controller.orderModel.value.id.toString())}"
|
||||
.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -86,7 +86,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
title:
|
||||
controller.orderModel.value.status
|
||||
.toString()
|
||||
.tr(),
|
||||
.tr,
|
||||
color: Constant.statusColor(
|
||||
status:
|
||||
controller.orderModel.value.status
|
||||
@@ -228,7 +228,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
: InkWell(
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader(
|
||||
"Please wait...".tr(),
|
||||
"Please wait...".tr,
|
||||
);
|
||||
|
||||
UserModel? customer =
|
||||
@@ -497,7 +497,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader(
|
||||
"Please wait..."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
|
||||
UserModel?
|
||||
@@ -701,7 +701,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"Order Delivered.".tr(),
|
||||
"Order Delivered.".tr,
|
||||
textAlign:
|
||||
TextAlign.right,
|
||||
style: TextStyle(
|
||||
@@ -743,8 +743,8 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
const SizedBox(width: 5),
|
||||
Expanded(
|
||||
child: Text(
|
||||
"${'Your Order has been Preparing and assign to the driver'.tr()}\n${'Preparation Time'.tr()} ${controller.orderModel.value.estimatedTimeToPrepare}"
|
||||
.tr(),
|
||||
"${'Your Order has been Preparing and assign to the driver'.tr}\n${'Preparation Time'.tr} ${controller.orderModel.value.estimatedTimeToPrepare}"
|
||||
.tr,
|
||||
textAlign:
|
||||
TextAlign.start,
|
||||
style: TextStyle(
|
||||
@@ -902,8 +902,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
InkWell(
|
||||
onTap: () async {
|
||||
ShowToastDialog.showLoader(
|
||||
"Please wait..."
|
||||
.tr(),
|
||||
"Please wait...".tr,
|
||||
);
|
||||
|
||||
UserModel? customer =
|
||||
@@ -1002,7 +1001,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
Text(
|
||||
"Your Order".tr(),
|
||||
"Your Order".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1246,7 +1245,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
alignment:
|
||||
Alignment.centerRight,
|
||||
child: RoundedButtonFill(
|
||||
title: "Rate us".tr(),
|
||||
title: "Rate us".tr,
|
||||
height: 3.8,
|
||||
width: 20,
|
||||
color:
|
||||
@@ -1298,7 +1297,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Variants".tr(),
|
||||
"Variants".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1381,7 +1380,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Addons".tr(),
|
||||
"Addons".tr,
|
||||
textAlign:
|
||||
TextAlign.start,
|
||||
style: TextStyle(
|
||||
@@ -1512,7 +1511,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
// children: [
|
||||
// Text(
|
||||
// "Delivery Man".tr(),
|
||||
// "Delivery Man".tr,
|
||||
// textAlign: TextAlign.start,
|
||||
// style: TextStyle(
|
||||
// fontFamily: AppThemeData.semiBold,
|
||||
@@ -1531,7 +1530,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
// ],
|
||||
// ),
|
||||
Text(
|
||||
"Bill Details".tr(),
|
||||
"Bill Details".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1567,7 +1566,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Item totals".tr(),
|
||||
"Item totals".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -1606,7 +1605,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Delivery Fee".tr(),
|
||||
"Delivery Fee".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1626,7 +1625,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
?.isSelfDelivery ==
|
||||
true)
|
||||
? Text(
|
||||
'Free Delivery'.tr(),
|
||||
'Free Delivery'.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1684,7 +1683,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Coupon Discount".tr(),
|
||||
"Coupon Discount".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -1726,7 +1725,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Special Discount".tr(),
|
||||
"Special Discount".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1781,7 +1780,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Delivery Tips".tr(),
|
||||
"Delivery Tips".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -1913,7 +1912,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"To Pay".tr(),
|
||||
"To Pay".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -1949,7 +1948,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
Text(
|
||||
"Order Details".tr(),
|
||||
"Order Details".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -1985,7 +1984,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Delivery type".tr(),
|
||||
"Delivery type".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -2000,14 +1999,14 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
Text(
|
||||
controller.orderModel.value.takeAway ==
|
||||
true
|
||||
? "TakeAway".tr()
|
||||
? "TakeAway".tr
|
||||
: controller
|
||||
.orderModel
|
||||
.value
|
||||
.scheduleTime ==
|
||||
null
|
||||
? "Standard".tr()
|
||||
: "Schedule".tr(),
|
||||
? "Standard".tr
|
||||
: "Schedule".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -2033,7 +2032,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Payment Method".tr(),
|
||||
"Payment Method".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -2070,7 +2069,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Date and Time".tr(),
|
||||
"Date and Time".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -2112,7 +2111,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Phone Number".tr(),
|
||||
"Phone Number".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily:
|
||||
@@ -2159,7 +2158,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Remarks".tr(),
|
||||
"Remarks".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -2228,7 +2227,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
controller.orderModel.value.status ==
|
||||
Constant.orderInTransit
|
||||
? RoundedButtonFill(
|
||||
title: "Track Order".tr(),
|
||||
title: "Track Order".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.warning300,
|
||||
textColor: AppThemeData.grey900,
|
||||
@@ -2242,7 +2241,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
},
|
||||
)
|
||||
: RoundedButtonFill(
|
||||
title: "Reorder".tr(),
|
||||
title: "Reorder".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
@@ -2256,7 +2255,7 @@ class OrderDetailsScreen extends StatelessWidget {
|
||||
cartProductModel: element,
|
||||
);
|
||||
ShowToastDialog.showToast(
|
||||
"Item Added In a cart".tr(),
|
||||
"Item Added In a cart".tr,
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5,10 +5,11 @@ import 'package:customer/models/order_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
import '../../../widget/my_separator.dart';
|
||||
@@ -44,7 +45,7 @@ class OrderScreen extends StatelessWidget {
|
||||
Image.asset("assets/images/login.gif", height: 120),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"Please Log In to Continue".tr(),
|
||||
"Please Log In to Continue".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -57,7 +58,7 @@ class OrderScreen extends StatelessWidget {
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"You’re not logged in. Please sign in to access your account and explore all features."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -70,7 +71,7 @@ class OrderScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
RoundedButtonFill(
|
||||
title: "Log in".tr(),
|
||||
title: "Log in".tr,
|
||||
width: 55,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
@@ -96,7 +97,7 @@ class OrderScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"My Order".tr(),
|
||||
"My Order".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color:
|
||||
@@ -109,7 +110,7 @@ class OrderScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Keep track your delivered, In Progress and Rejected item all in just one place."
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -171,12 +172,12 @@ class OrderScreen extends StatelessWidget {
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 18,
|
||||
),
|
||||
child: Tab(text: 'All'.tr()),
|
||||
child: Tab(text: 'All'.tr),
|
||||
),
|
||||
Tab(text: 'In Progress'.tr()),
|
||||
Tab(text: 'Delivered'.tr()),
|
||||
Tab(text: 'Cancelled'.tr()),
|
||||
Tab(text: 'Rejected'.tr()),
|
||||
Tab(text: 'In Progress'.tr),
|
||||
Tab(text: 'Delivered'.tr),
|
||||
Tab(text: 'Cancelled'.tr),
|
||||
Tab(text: 'Rejected'.tr),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -186,7 +187,7 @@ class OrderScreen extends StatelessWidget {
|
||||
children: [
|
||||
controller.allList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Order Not Found".tr(),
|
||||
message: "Order Not Found".tr,
|
||||
)
|
||||
: RefreshIndicator(
|
||||
onRefresh:
|
||||
@@ -210,7 +211,7 @@ class OrderScreen extends StatelessWidget {
|
||||
),
|
||||
controller.inProgressList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Order Not Found".tr(),
|
||||
message: "Order Not Found".tr,
|
||||
)
|
||||
: RefreshIndicator(
|
||||
onRefresh:
|
||||
@@ -237,7 +238,7 @@ class OrderScreen extends StatelessWidget {
|
||||
),
|
||||
controller.deliveredList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Order Not Found".tr(),
|
||||
message: "Order Not Found".tr,
|
||||
)
|
||||
: RefreshIndicator(
|
||||
onRefresh:
|
||||
@@ -264,7 +265,7 @@ class OrderScreen extends StatelessWidget {
|
||||
),
|
||||
controller.cancelledList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Order Not Found".tr(),
|
||||
message: "Order Not Found".tr,
|
||||
)
|
||||
: RefreshIndicator(
|
||||
onRefresh:
|
||||
@@ -291,7 +292,7 @@ class OrderScreen extends StatelessWidget {
|
||||
),
|
||||
controller.rejectedList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Order Not Found".tr(),
|
||||
message: "Order Not Found".tr,
|
||||
)
|
||||
: RefreshIndicator(
|
||||
onRefresh:
|
||||
@@ -498,12 +499,12 @@ class OrderScreen extends StatelessWidget {
|
||||
for (var element in orderModel.products!) {
|
||||
controller.addToCart(cartProductModel: element);
|
||||
ShowToastDialog.showToast(
|
||||
"Item Added In a cart".tr(),
|
||||
"Item Added In a cart".tr,
|
||||
);
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
"Reorder".tr(),
|
||||
"Reorder".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -528,7 +529,7 @@ class OrderScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"Track Order".tr(),
|
||||
"Track Order".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -553,7 +554,7 @@ class OrderScreen extends StatelessWidget {
|
||||
// Get.off(const OrderPlacingScreen(), arguments: {"orderModel": orderModel});
|
||||
},
|
||||
child: Text(
|
||||
"View Details".tr(),
|
||||
"View Details".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
|
||||
@@ -5,7 +5,8 @@ import 'package:customer/screen_ui/on_demand_service/worker_inbox_screen.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/custom_dialog_box.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
|
||||
import 'package:in_app_review/in_app_review.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
@@ -24,7 +25,7 @@ import 'package:firebase_auth/firebase_auth.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
|
||||
import '../terms_and_condition/terms_and_condition_screen.dart';
|
||||
@@ -54,7 +55,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"My Profile".tr(),
|
||||
"My Profile".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color:
|
||||
@@ -67,7 +68,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Manage your personal information, preferences, and settings all in one place."
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -80,7 +81,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"General Information".tr(),
|
||||
"General Information".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -116,7 +117,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/images/ic_profile.svg",
|
||||
"Profile Information".tr(),
|
||||
"Profile Information".tr,
|
||||
() {
|
||||
Get.to(const EditProfileScreen());
|
||||
},
|
||||
@@ -129,7 +130,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/images/ic_dinin.svg",
|
||||
"Dine-In".tr(),
|
||||
"Dine-In".tr,
|
||||
() {
|
||||
Get.to(const DineInScreen());
|
||||
},
|
||||
@@ -138,7 +139,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/images/ic_gift.svg",
|
||||
"Gift Card".tr(),
|
||||
"Gift Card".tr,
|
||||
() {
|
||||
Get.to(const GiftCardScreen());
|
||||
},
|
||||
@@ -148,7 +149,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_cashback_Offer.svg",
|
||||
"Cashback Offers".tr(),
|
||||
"Cashback Offers".tr,
|
||||
() {
|
||||
Get.to(
|
||||
const CashbackOffersListScreen(),
|
||||
@@ -165,7 +166,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Bookings Information".tr(),
|
||||
"Bookings Information".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -199,7 +200,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_dinin_order.svg",
|
||||
"Dine-In Booking".tr(),
|
||||
"Dine-In Booking".tr,
|
||||
() {
|
||||
Get.to(
|
||||
const DineInBookingScreen(),
|
||||
@@ -215,7 +216,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
: const SizedBox(),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Preferences".tr(),
|
||||
"Preferences".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -249,7 +250,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_change_language.svg",
|
||||
"Change Language".tr(),
|
||||
"Change Language".tr,
|
||||
() {
|
||||
Get.to(const ChangeLanguageScreen());
|
||||
},
|
||||
@@ -258,7 +259,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_light_dark.svg",
|
||||
"Dark Mode".tr(),
|
||||
"Dark Mode".tr,
|
||||
() {},
|
||||
),
|
||||
],
|
||||
@@ -267,7 +268,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Social".tr(),
|
||||
"Social".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -303,7 +304,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_refer.svg",
|
||||
"Refer a Friend".tr(),
|
||||
"Refer a Friend".tr,
|
||||
() {
|
||||
Get.to(const ReferFriendScreen());
|
||||
},
|
||||
@@ -312,11 +313,11 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_share.svg",
|
||||
"Share app".tr(),
|
||||
"Share app".tr,
|
||||
() {
|
||||
Share.share(
|
||||
'${'Check out Foodie, your ultimate food delivery application!'.tr()} \n\n${'Google Play:'.tr()} ${Constant.googlePlayLink} \n\n${'App Store:'.tr()} ${Constant.appStoreLink}',
|
||||
subject: 'Look what I made!'.tr(),
|
||||
'${'Check out Foodie, your ultimate food delivery application!'.tr} \n\n${'Google Play:'.tr} ${Constant.googlePlayLink} \n\n${'App Store:'.tr} ${Constant.appStoreLink}',
|
||||
subject: 'Look what I made!'.tr,
|
||||
);
|
||||
},
|
||||
),
|
||||
@@ -324,7 +325,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_rate.svg",
|
||||
"Rate the app".tr(),
|
||||
"Rate the app".tr,
|
||||
() {
|
||||
final InAppReview inAppReview =
|
||||
InAppReview.instance;
|
||||
@@ -342,7 +343,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Communication".tr(),
|
||||
"Communication".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -376,7 +377,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_restaurant_chat.svg",
|
||||
"Store Inbox".tr(),
|
||||
"Store Inbox".tr,
|
||||
() {
|
||||
Get.to(
|
||||
const RestaurantInboxScreen(),
|
||||
@@ -387,7 +388,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_restaurant_driver.svg",
|
||||
"Driver Inbox".tr(),
|
||||
"Driver Inbox".tr,
|
||||
() {
|
||||
Get.to(const DriverInboxScreen());
|
||||
},
|
||||
@@ -396,7 +397,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_restaurant_chat.svg",
|
||||
"Provider Inbox".tr(),
|
||||
"Provider Inbox".tr,
|
||||
() {
|
||||
Get.to(
|
||||
const ProviderInboxScreen(),
|
||||
@@ -407,7 +408,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_restaurant_driver.svg",
|
||||
"Worker Inbox".tr(),
|
||||
"Worker Inbox".tr,
|
||||
() {
|
||||
Get.to(const WorkerInboxScreen());
|
||||
},
|
||||
@@ -420,7 +421,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
Text(
|
||||
"Legal".tr(),
|
||||
"Legal".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -454,7 +455,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_privacy_policy.svg",
|
||||
"Privacy Policy".tr(),
|
||||
"Privacy Policy".tr,
|
||||
() {
|
||||
Get.to(
|
||||
const TermsAndConditionScreen(
|
||||
@@ -467,7 +468,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_tearm_condition.svg",
|
||||
"Terms and Conditions".tr(),
|
||||
"Terms and Conditions".tr,
|
||||
() {
|
||||
Get.to(
|
||||
const TermsAndConditionScreen(
|
||||
@@ -505,7 +506,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_logout.svg",
|
||||
"Log In".tr(),
|
||||
"Log In".tr,
|
||||
() {
|
||||
Get.offAll(const LoginScreen());
|
||||
},
|
||||
@@ -514,18 +515,18 @@ class ProfileScreen extends StatelessWidget {
|
||||
isDark,
|
||||
controller,
|
||||
"assets/icons/ic_logout.svg",
|
||||
"Log out".tr(),
|
||||
"Log out".tr,
|
||||
() {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return CustomDialogBox(
|
||||
title: "Log out".tr(),
|
||||
title: "Log out".tr,
|
||||
descriptions:
|
||||
"Are you sure you want to log out? You will need to enter your credentials to log back in."
|
||||
.tr(),
|
||||
positiveString: "Log out".tr(),
|
||||
negativeString: "Cancel".tr(),
|
||||
.tr,
|
||||
positiveString: "Log out".tr,
|
||||
negativeString: "Cancel".tr,
|
||||
positiveClick: () async {
|
||||
Constant.userModel!.fcmToken =
|
||||
"";
|
||||
@@ -569,15 +570,15 @@ class ProfileScreen extends StatelessWidget {
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return CustomDialogBox(
|
||||
title: "Delete Account".tr(),
|
||||
title: "Delete Account".tr,
|
||||
descriptions:
|
||||
"Are you sure you want to delete your account? This action is irreversible and will permanently remove all your data."
|
||||
.tr(),
|
||||
positiveString: "Delete".tr(),
|
||||
negativeString: "Cancel".tr(),
|
||||
.tr,
|
||||
positiveString: "Delete".tr,
|
||||
negativeString: "Cancel".tr,
|
||||
positiveClick: () async {
|
||||
ShowToastDialog.showLoader(
|
||||
"Please wait...".tr(),
|
||||
"Please wait...".tr,
|
||||
);
|
||||
await controller
|
||||
.deleteUserFromServer();
|
||||
@@ -588,12 +589,12 @@ class ProfileScreen extends StatelessWidget {
|
||||
if (value == true) {
|
||||
ShowToastDialog.showToast(
|
||||
"Account deleted successfully"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
Get.offAll(const LoginScreen());
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Contact Administrator".tr(),
|
||||
"Contact Administrator".tr,
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -620,7 +621,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Text(
|
||||
"Delete Account".tr(),
|
||||
"Delete Account".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -679,7 +680,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
SvgPicture.asset(
|
||||
image,
|
||||
colorFilter:
|
||||
title == "Log In".tr() || title == "Cashbacks".tr()
|
||||
title == "Log In".tr || title == "Cashbacks".tr
|
||||
? const ColorFilter.mode(
|
||||
AppThemeData.success500,
|
||||
BlendMode.srcIn,
|
||||
@@ -691,15 +692,15 @@ class ProfileScreen extends StatelessWidget {
|
||||
const SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: Text(
|
||||
title.tr(),
|
||||
title.tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
fontSize: 16,
|
||||
color:
|
||||
title == "Log out".tr()
|
||||
title == "Log out".tr
|
||||
? AppThemeData.danger300
|
||||
: title == "Log In".tr()
|
||||
: title == "Log In".tr
|
||||
? AppThemeData.success500
|
||||
: (isDark
|
||||
? AppThemeData.grey100
|
||||
@@ -707,7 +708,7 @@ class ProfileScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
title == "Dark Mode".tr()
|
||||
title == "Dark Mode".tr
|
||||
? Transform.scale(
|
||||
scale: 0.8,
|
||||
child: Obx(
|
||||
|
||||
@@ -6,11 +6,11 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:dotted_border/dotted_border.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
@@ -35,7 +35,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Rate the item".tr(),
|
||||
"Rate the item".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -75,7 +75,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Rate for".tr(),
|
||||
"Rate for".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -86,8 +86,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${controller.productModel.value.name}"
|
||||
.tr(),
|
||||
"${controller.productModel.value.name}".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -249,7 +248,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Choose a image and upload here"
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -261,7 +260,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"JPEG, PNG".tr(),
|
||||
"JPEG, PNG".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -274,7 +273,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
RoundedButtonFill(
|
||||
title: "Brows Image".tr(),
|
||||
title: "Brows Image".tr,
|
||||
color: AppThemeData.primary50,
|
||||
width: 30,
|
||||
height: 5,
|
||||
@@ -423,7 +422,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
enabledBorder: InputBorder.none,
|
||||
errorBorder: InputBorder.none,
|
||||
border: InputBorder.none,
|
||||
hintText: "Type comment".tr(),
|
||||
hintText: "Type comment".tr,
|
||||
hintStyle: TextStyle(
|
||||
fontSize: 14,
|
||||
color:
|
||||
@@ -449,7 +448,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
title: "Submit Review".tr(),
|
||||
title: "Submit Review".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
@@ -483,7 +482,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 15),
|
||||
child: Text(
|
||||
"Please Select".tr(),
|
||||
"Please Select".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
@@ -510,7 +509,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 3),
|
||||
child: Text("Camera".tr()),
|
||||
child: Text("Camera".tr),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -533,7 +532,7 @@ class RateProductScreen extends StatelessWidget {
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 3),
|
||||
child: Text("Gallery".tr()),
|
||||
child: Text("Gallery".tr),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -3,11 +3,11 @@ import 'package:customer/controllers/refer_friend_controller.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
@@ -66,7 +66,7 @@ class ReferFriendScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"Refer your friend and earn".tr(),
|
||||
"Refer your friend and earn".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
color:
|
||||
@@ -79,7 +79,7 @@ class ReferFriendScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
"${Constant.amountShow(amount: Constant.sectionConstantModel!.referralAmount)} ${'Each🎉'.tr()}",
|
||||
"${Constant.amountShow(amount: Constant.sectionConstantModel!.referralAmount)} ${'Each🎉'.tr}",
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color:
|
||||
@@ -92,7 +92,7 @@ class ReferFriendScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
Text(
|
||||
"Invite Friends & Businesses".tr(),
|
||||
"Invite Friends & Businesses".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -105,8 +105,8 @@ class ReferFriendScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
"${'Invite your friends to sign up with Foodie using your code, and you’ll earn'.tr()} ${Constant.amountShow(amount: Constant.sectionConstantModel!.referralAmount)} ${'after their Success the first order! 💸🍔'.tr()}"
|
||||
.tr(),
|
||||
"${'Invite your friends to sign up with Foodie using your code, and you’ll earn'.tr} ${Constant.amountShow(amount: Constant.sectionConstantModel!.referralAmount)} ${'after their Success the first order! 💸🍔'.tr}"
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
@@ -180,7 +180,7 @@ class ReferFriendScreen extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
ShowToastDialog.showToast(
|
||||
"Copied".tr(),
|
||||
"Copied".tr,
|
||||
);
|
||||
},
|
||||
child: const Icon(
|
||||
@@ -214,7 +214,7 @@ class ReferFriendScreen extends StatelessWidget {
|
||||
vertical: 30,
|
||||
),
|
||||
child: Text(
|
||||
"or".tr(),
|
||||
"or".tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -241,13 +241,13 @@ class ReferFriendScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
RoundedButtonFill(
|
||||
title: "Share Code".tr(),
|
||||
title: "Share Code".tr,
|
||||
width: 55,
|
||||
color: AppThemeData.ecommerce300,
|
||||
textColor: AppThemeData.grey50,
|
||||
onPress: () async {
|
||||
await Share.share(
|
||||
"${"Hey there, thanks for choosing Foodie. Hope you love our product. If you do, share it with your friends using code".tr()} ${controller.referralModel.value.referralCode.toString()} ${"and get".tr()}${Constant.amountShow(amount: Constant.sectionConstantModel!.referralAmount.toString())} ${"when order completed".tr()}",
|
||||
"${"Hey there, thanks for choosing Foodie. Hope you love our product. If you do, share it with your friends using code".tr} ${controller.referralModel.value.referralCode.toString()} ${"and get".tr}${Constant.amountShow(amount: Constant.sectionConstantModel!.referralAmount.toString())} ${"when order completed".tr}",
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
@@ -13,11 +13,11 @@ import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
@@ -52,7 +52,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'${cartItem.length} ${"items".tr()}',
|
||||
'${cartItem.length} ${"items".tr}',
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
color: AppThemeData.grey50,
|
||||
@@ -60,7 +60,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'View Cart'.tr(),
|
||||
'View Cart'.tr,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
color: AppThemeData.grey50,
|
||||
@@ -124,7 +124,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
"Free Delivery".tr(),
|
||||
"Free Delivery".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color: AppThemeData.carRent600,
|
||||
@@ -484,7 +484,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Text(
|
||||
"${controller.vendorModel.value.reviewsCount} ${'Ratings'.tr()}",
|
||||
"${controller.vendorModel.value.reviewsCount} ${'Ratings'.tr}",
|
||||
style: TextStyle(
|
||||
decoration:
|
||||
TextDecoration.underline,
|
||||
@@ -510,8 +510,8 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
Text(
|
||||
controller.isOpen.value
|
||||
? "Open".tr()
|
||||
: "Close".tr(),
|
||||
? "Open".tr
|
||||
: "Close".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -547,7 +547,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
.isEmpty) {
|
||||
ShowToastDialog.showToast(
|
||||
"Timing is not added by store"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
} else {
|
||||
timeShowBottomSheet(
|
||||
@@ -557,7 +557,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
"View Timings".tr(),
|
||||
"View Timings".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -600,7 +600,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Also applicable on table booking"
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -673,8 +673,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
.start,
|
||||
children: [
|
||||
Text(
|
||||
"Table Booking"
|
||||
.tr(),
|
||||
"Table Booking".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -693,7 +692,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Quick Conformations"
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color:
|
||||
@@ -729,7 +728,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Additional Offers".tr(),
|
||||
"Additional Offers".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -751,7 +750,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
"Menu".tr(),
|
||||
"Menu".tr,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
@@ -771,8 +770,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
controller
|
||||
.searchEditingController
|
||||
.value,
|
||||
hintText:
|
||||
'Search the item and more...'.tr(),
|
||||
hintText: 'Search the item and more...'.tr,
|
||||
onchange: (value) {
|
||||
controller.searchProduct(value);
|
||||
},
|
||||
@@ -866,7 +864,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'Veg'.tr(),
|
||||
'Veg'.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -962,7 +960,7 @@ class RestaurantDetailsScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'Non Veg'.tr(),
|
||||
'Non Veg'.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -1372,7 +1370,7 @@ class CouponListView extends StatelessWidget {
|
||||
Clipboard.setData(
|
||||
ClipboardData(text: offerModel.code.toString()),
|
||||
).then((value) {
|
||||
ShowToastDialog.showToast("Copied".tr());
|
||||
ShowToastDialog.showToast("Copied".tr);
|
||||
});
|
||||
},
|
||||
child: Row(
|
||||
@@ -1573,8 +1571,8 @@ class ProductListView extends StatelessWidget {
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
productModel.nonveg == true
|
||||
? "Non Veg.".tr()
|
||||
: "Pure veg.".tr(),
|
||||
? "Non Veg.".tr
|
||||
: "Pure veg.".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
productModel.nonveg == true
|
||||
@@ -1709,7 +1707,7 @@ class ProductListView extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
"Info".tr(),
|
||||
"Info".tr,
|
||||
maxLines: 2,
|
||||
style: TextStyle(
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -1833,7 +1831,7 @@ class ProductListView extends StatelessWidget {
|
||||
.addOnsTitle!
|
||||
.isNotEmpty)
|
||||
? RoundedButtonFill(
|
||||
title: "Add".tr(),
|
||||
title: "Add".tr,
|
||||
width: 10,
|
||||
height: 4,
|
||||
color:
|
||||
@@ -2121,7 +2119,7 @@ class ProductListView extends StatelessWidget {
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Out of stock"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
}
|
||||
},
|
||||
@@ -2139,7 +2137,7 @@ class ProductListView extends StatelessWidget {
|
||||
),
|
||||
)
|
||||
: RoundedButtonFill(
|
||||
title: "Add".tr(),
|
||||
title: "Add".tr,
|
||||
width: 10,
|
||||
height: 4,
|
||||
color:
|
||||
@@ -2173,7 +2171,7 @@ class ProductListView extends StatelessWidget {
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Out of stock"
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
}
|
||||
},
|
||||
@@ -2245,7 +2243,7 @@ class ProductListView extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Product Information's".tr(),
|
||||
"Product Information's".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.bold,
|
||||
@@ -2282,7 +2280,7 @@ class ProductListView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Gram".tr(),
|
||||
"Gram".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -2319,7 +2317,7 @@ class ProductListView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Calories".tr(),
|
||||
"Calories".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -2356,7 +2354,7 @@ class ProductListView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Proteins".tr(),
|
||||
"Proteins".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -2393,7 +2391,7 @@ class ProductListView extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Fats".tr(),
|
||||
"Fats".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.regular,
|
||||
@@ -2429,7 +2427,7 @@ class ProductListView extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Specification".tr(),
|
||||
"Specification".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -2497,7 +2495,7 @@ class ProductListView extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Brand".tr(),
|
||||
"Brand".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.w700,
|
||||
@@ -2528,7 +2526,7 @@ class ProductListView extends StatelessWidget {
|
||||
: const SizedBox(),
|
||||
const SizedBox(height: 20),
|
||||
RoundedButtonFill(
|
||||
title: "Back".tr(),
|
||||
title: "Back".tr,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
onPress: () async {
|
||||
@@ -2788,7 +2786,7 @@ class ProductDetailsView extends StatelessWidget {
|
||||
),
|
||||
child: Text(
|
||||
"Required • Select any 1 option"
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -3031,7 +3029,7 @@ class ProductDetailsView extends StatelessWidget {
|
||||
horizontal: 12,
|
||||
),
|
||||
child: Text(
|
||||
"Addons".tr(),
|
||||
"Addons".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -3207,9 +3205,7 @@ class ProductDetailsView extends StatelessWidget {
|
||||
controller.quantity.value += 1;
|
||||
controller.update();
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Out of stock".tr(),
|
||||
);
|
||||
ShowToastDialog.showToast("Out of stock".tr);
|
||||
}
|
||||
} else {
|
||||
int totalQuantity = int.parse(
|
||||
@@ -3230,9 +3226,7 @@ class ProductDetailsView extends StatelessWidget {
|
||||
controller.quantity.value += 1;
|
||||
controller.update();
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Out of stock".tr(),
|
||||
);
|
||||
ShowToastDialog.showToast("Out of stock".tr);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3253,8 +3247,8 @@ class ProductDetailsView extends StatelessWidget {
|
||||
flex: 2,
|
||||
child: RoundedButtonFill(
|
||||
title:
|
||||
"${'Add item'.tr()} ${Constant.amountShow(amount: controller.calculatePrice(productModel))}"
|
||||
.tr(),
|
||||
"${'Add item'.tr} ${Constant.amountShow(amount: controller.calculatePrice(productModel))}"
|
||||
.tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
|
||||
@@ -6,12 +6,12 @@ import 'package:customer/models/rating_model.dart';
|
||||
import 'package:customer/models/review_attribute_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../chat_screens/full_screen_image_viewer.dart';
|
||||
|
||||
@@ -34,7 +34,7 @@ class ReviewListScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Reviews".tr(),
|
||||
"Reviews".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -47,7 +47,7 @@ class ReviewListScreen extends StatelessWidget {
|
||||
controller.isLoading.value
|
||||
? Constant.loader()
|
||||
: controller.ratingList.isEmpty
|
||||
? Constant.showEmptyView(message: "No Review found".tr())
|
||||
? Constant.showEmptyView(message: "No Review found".tr)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
@@ -121,7 +121,7 @@ class ReviewListScreen extends StatelessWidget {
|
||||
snapshot.data!.data()!,
|
||||
);
|
||||
return Text(
|
||||
'${'Rate for'.tr()} - ${model.name ?? ''}',
|
||||
'${'Rate for'.tr} - ${model.name ?? ''}',
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import 'package:customer/controllers/scan_qr_code_controller.dart';
|
||||
import 'package:customer/models/vendor_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:qr_code_dart_scan/qr_code_dart_scan.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
@@ -27,7 +27,7 @@ class ScanQrCodeScreen extends StatelessWidget {
|
||||
backgroundColor:
|
||||
isDark ? AppThemeData.surfaceDark : AppThemeData.surface,
|
||||
title: Text(
|
||||
"Scan QR Code".tr(),
|
||||
"Scan QR Code".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
@@ -42,13 +42,13 @@ class ScanQrCodeScreen extends StatelessWidget {
|
||||
// if TypeScan.takePicture will try decode when click to take a picture(default TypeScan.live)
|
||||
onCapture: (Result result) {
|
||||
Get.back();
|
||||
ShowToastDialog.showLoader("Please wait...".tr());
|
||||
ShowToastDialog.showLoader("Please wait...".tr);
|
||||
if (controller.allNearestRestaurant.isNotEmpty) {
|
||||
if (controller.allNearestRestaurant
|
||||
.where((vendor) => vendor.id == result.text)
|
||||
.isEmpty) {
|
||||
ShowToastDialog.closeLoader();
|
||||
ShowToastDialog.showToast("Store is not available".tr());
|
||||
ShowToastDialog.showToast("Store is not available".tr);
|
||||
return;
|
||||
}
|
||||
VendorModel storeModel = controller.allNearestRestaurant
|
||||
@@ -61,7 +61,7 @@ class ScanQrCodeScreen extends StatelessWidget {
|
||||
);
|
||||
} else {
|
||||
Get.back();
|
||||
ShowToastDialog.showToast("Store is not available".tr());
|
||||
ShowToastDialog.showToast("Store is not available".tr);
|
||||
}
|
||||
},
|
||||
),
|
||||
|
||||
@@ -5,12 +5,12 @@ import 'package:customer/models/vendor_model.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/responsive.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import 'package:customer/utils/network_image_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../service/fire_store_utils.dart';
|
||||
import '../../../widget/restaurant_image_view.dart';
|
||||
import '../restaurant_details_screen/restaurant_details_screen.dart';
|
||||
@@ -37,7 +37,7 @@ class SearchScreen extends StatelessWidget {
|
||||
) ==
|
||||
true
|
||||
? "Find your favorite products and nearby stores"
|
||||
: "Search Item & Store".tr(),
|
||||
: "Search Item & Store".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.medium,
|
||||
@@ -55,8 +55,8 @@ class SearchScreen extends StatelessWidget {
|
||||
?.toLowerCase()
|
||||
.contains('restaurants') ==
|
||||
true
|
||||
? 'Find your favorite products and nearby stores'.tr()
|
||||
: 'Search the store and item'.tr(),
|
||||
? 'Find your favorite products and nearby stores'.tr
|
||||
: 'Search the store and item'.tr,
|
||||
prefix: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: SvgPicture.asset("assets/icons/ic_search.svg"),
|
||||
@@ -87,7 +87,7 @@ class SearchScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Store".tr(),
|
||||
"Store".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -230,7 +230,7 @@ class SearchScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Free Delivery"
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color:
|
||||
@@ -427,7 +427,7 @@ class SearchScreen extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Items".tr(),
|
||||
"Items".tr,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
@@ -526,9 +526,9 @@ class SearchScreen extends StatelessWidget {
|
||||
productModel.nonveg ==
|
||||
true
|
||||
? "Non Veg."
|
||||
.tr()
|
||||
.tr
|
||||
: "Pure veg."
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
productModel.nonveg ==
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import 'package:flutter_html/flutter_html.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
|
||||
@@ -32,7 +32,7 @@ class TermsAndConditionScreen extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
title: Text(
|
||||
type == "privacy" ? "Privacy Policy".tr() : "Terms & Conditions".tr(),
|
||||
type == "privacy" ? "Privacy Policy".tr : "Terms & Conditions".tr,
|
||||
style: TextStyle(
|
||||
color: isDark ? AppThemeData.grey100 : AppThemeData.grey800,
|
||||
fontFamily: AppThemeData.bold,
|
||||
|
||||
@@ -6,10 +6,10 @@ import 'package:customer/screen_ui/multi_vendor_service/wallet_screen/wallet_scr
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:customer/themes/text_field_widget.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../themes/show_toast_dialog.dart';
|
||||
|
||||
@@ -30,7 +30,7 @@ class PaymentListScreen extends StatelessWidget {
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
"Top up Wallet".tr(),
|
||||
"Top up Wallet".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: isDark ? AppThemeData.grey50 : AppThemeData.grey900,
|
||||
@@ -46,8 +46,8 @@ class PaymentListScreen extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: TextFieldWidget(
|
||||
title: 'Amount'.tr(),
|
||||
hintText: 'Enter Amount'.tr(),
|
||||
title: 'Amount'.tr,
|
||||
hintText: 'Enter Amount'.tr,
|
||||
controller: controller.topUpAmountController.value,
|
||||
textInputType: const TextInputType.numberWithOptions(
|
||||
decimal: true,
|
||||
@@ -74,7 +74,7 @@ class PaymentListScreen extends StatelessWidget {
|
||||
vertical: 10,
|
||||
),
|
||||
child: Text(
|
||||
"Select Top up Options".tr(),
|
||||
"Select Top up Options".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color:
|
||||
@@ -208,14 +208,14 @@ class PaymentListScreen extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
child: RoundedButtonFill(
|
||||
title: "Top-up".tr(),
|
||||
title: "Top-up".tr,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
textColor: AppThemeData.grey50,
|
||||
fontSizes: 16,
|
||||
onPress: () async {
|
||||
if (controller.topUpAmountController.value.text.isEmpty) {
|
||||
ShowToastDialog.showToast("Please Enter Amount".tr());
|
||||
ShowToastDialog.showToast("Please Enter Amount".tr);
|
||||
} else {
|
||||
if (double.parse(
|
||||
controller.topUpAmountController.value.text,
|
||||
@@ -289,7 +289,7 @@ class PaymentListScreen extends StatelessWidget {
|
||||
Get.back();
|
||||
ShowToastDialog.showToast(
|
||||
"Something went wrong, please contact admin."
|
||||
.tr(),
|
||||
.tr,
|
||||
);
|
||||
} else {
|
||||
CreateRazorPayOrderModel result = value;
|
||||
@@ -305,12 +305,12 @@ class PaymentListScreen extends StatelessWidget {
|
||||
});
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"Please select payment method".tr(),
|
||||
"Please select payment method".tr,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
ShowToastDialog.showToast(
|
||||
"${'Please Enter minimum amount of'.tr()} ${Constant.amountShow(amount: Constant.minimumAmountToDeposit)}",
|
||||
"${'Please Enter minimum amount of'.tr} ${Constant.amountShow(amount: Constant.minimumAmountToDeposit)}",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,8 @@ import 'package:customer/models/wallet_transaction_model.dart';
|
||||
import 'package:customer/screen_ui/multi_vendor_service/wallet_screen/payment_list_screen.dart';
|
||||
import 'package:customer/themes/app_them_data.dart';
|
||||
import 'package:customer/themes/round_button_fill.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:customer/utils/app_router.dart';
|
||||
|
||||
import '../../../constant/collection_name.dart';
|
||||
import '../../../controllers/theme_controller.dart';
|
||||
import '../../../models/cab_order_model.dart';
|
||||
@@ -23,7 +24,7 @@ import '../../rental_service/rental_order_details_screen.dart';
|
||||
import '../order_list_screen/order_details_screen.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart' hide Trans;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class WalletScreen extends StatelessWidget {
|
||||
const WalletScreen({super.key});
|
||||
@@ -51,7 +52,7 @@ class WalletScreen extends StatelessWidget {
|
||||
Image.asset("assets/images/login.gif", height: 120),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"Please Log In to Continue".tr(),
|
||||
"Please Log In to Continue".tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -64,7 +65,7 @@ class WalletScreen extends StatelessWidget {
|
||||
const SizedBox(height: 5),
|
||||
Text(
|
||||
"You’re not logged in. Please sign in to access your account and explore all features."
|
||||
.tr(),
|
||||
.tr,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -77,7 +78,7 @@ class WalletScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
RoundedButtonFill(
|
||||
title: "Log in".tr(),
|
||||
title: "Log in".tr,
|
||||
width: 55,
|
||||
height: 5.5,
|
||||
color: AppThemeData.primary300,
|
||||
@@ -111,7 +112,7 @@ class WalletScreen extends StatelessWidget {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"My Wallet".tr(),
|
||||
"My Wallet".tr,
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color:
|
||||
@@ -124,7 +125,7 @@ class WalletScreen extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
"Keep track of your balance, transactions, and payment methods all in one place."
|
||||
.tr(),
|
||||
.tr,
|
||||
style: TextStyle(
|
||||
color:
|
||||
isDark
|
||||
@@ -165,7 +166,7 @@ class WalletScreen extends StatelessWidget {
|
||||
child: Column(
|
||||
children: [
|
||||
Text(
|
||||
"My Wallet".tr(),
|
||||
"My Wallet".tr,
|
||||
maxLines: 1,
|
||||
style: TextStyle(
|
||||
color:
|
||||
@@ -203,7 +204,7 @@ class WalletScreen extends StatelessWidget {
|
||||
horizontal: 80,
|
||||
),
|
||||
child: RoundedButtonFill(
|
||||
title: "Top up".tr(),
|
||||
title: "Top up".tr,
|
||||
color: AppThemeData.warning300,
|
||||
textColor: AppThemeData.grey900,
|
||||
onPress: () {
|
||||
@@ -222,7 +223,7 @@ class WalletScreen extends StatelessWidget {
|
||||
child:
|
||||
controller.walletTransactionList.isEmpty
|
||||
? Constant.showEmptyView(
|
||||
message: "Transaction not found".tr(),
|
||||
message: "Transaction not found".tr,
|
||||
)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
@@ -307,7 +308,7 @@ class WalletScreen extends StatelessWidget {
|
||||
);
|
||||
break;
|
||||
default:
|
||||
ShowToastDialog.showToast("Order details not available".tr());
|
||||
ShowToastDialog.showToast("Order details not available".tr);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user