fixed A & E

fatima_dev
Rand Alshammari 3 weeks ago
parent 13966f60a9
commit 87ec0f2966

@ -678,11 +678,11 @@ extension BranchServiceEnumStatusToInt on ServiceStatusEnum {
}
extension DateTimeConversions on DateTime {
String getTimeAgo({bool numericDates = true}) {
String getTimeAgo({bool numericDates = true, bool isArabic = false,}) {
final date2 = DateTime.now();
final difference = date2.difference(this);
if ((difference.inDays / 7).floor() >= 2) {
return DateHelper.formatAsDayMonthYear(this);
return DateHelper.formatAsDayMonthYear(this, isArabic: isArabic,);
} else if ((difference.inDays / 7).floor() >= 1) {
return (numericDates) ? '1 week ago' : 'Last week';
} else if (difference.inDays >= 2) {

@ -15,6 +15,7 @@ class AdDetailsModel {
// List<Null>? reserved;
int? statusID;
String? statuslabel;
String? statuslabelN;
double? adsDurationPrice;
double? adsDurationDiscount;
double? adsDurationDiscountPrice;
@ -64,6 +65,7 @@ class AdDetailsModel {
// this.reserved,
this.statusID,
this.statuslabel,
this.statuslabelN,
this.adsDurationPrice,
this.adsDurationDiscount,
this.adsDurationDiscountPrice,
@ -124,6 +126,7 @@ class AdDetailsModel {
}
statusID = json['statusID'];
statuslabel = json['statuslabel'];
statuslabelN = json['statuslabelN'];
adsDurationPrice = json['adsDurationPrice'];
adsDurationDiscount = json['adsDurationDiscount'];
adsDurationDiscountPrice = json['adsDurationDiscountPrice'];

@ -21,8 +21,13 @@ class DateHelper {
return formatter.format(date);
}
static String formatAsTime(DateTime date) {
final formatter = DateFormat.jm();
// static String formatAsTime(DateTime date) {
// final formatter = DateFormat.jm();
// return formatter.format(date);
// }
static String formatAsTime(DateTime date, {bool isArabic = false,}) {
final formatter = DateFormat.jm(
isArabic ? 'ar' : 'en',);
return formatter.format(date);
}
@ -36,8 +41,15 @@ class DateHelper {
return formatter.format(date);
}
static String formatAsDayMonthYear(DateTime? date) {
final formatter = DateFormat('d MMM, y');
// static String formatAsDayMonthYear(DateTime? date) {
// final formatter = DateFormat('d MMM, y');
// return date != null ? formatter.format(date) : "N/A";
// }
static String formatAsDayMonthYear(DateTime? date,
{ bool isArabic = false,}) {
final formatter = DateFormat('d MMM, y',
isArabic ? 'ar' : 'en',
);
return date != null ? formatter.format(date) : "N/A";
}

@ -193,19 +193,20 @@ class AdVM extends BaseVM {
exploreAdsFilterOptions.clear();
myAdsFilterOptions.clear();
for (int i = 0; i < myAdsStatusEnums.length; i++) {
myAdsFilterOptions.add(FilterListModel(title: myAdsStatusEnums[i].enumValueStr, isSelected: false, id: myAdsStatusEnums[i].enumValue));
myAdsFilterOptions.add(FilterListModel(title: myAdsStatusEnums[i].enumValueStr, titleN: myAdsStatusEnums[i].enumValueStrN, isSelected: false, id: myAdsStatusEnums[i].enumValue));
}
myAdsFilterOptions.insert(0, FilterListModel(title: "All Ads", isSelected: true, id: 0));
myAdsFilterOptions.insert(0, FilterListModel(title: "All Ads", titleN: "جميع الاعلانات", isSelected: true, id: 0));
for (int i = 0; i < vehicleBrandsForFilters.length; i++) {
exploreAdsFilterOptions.add(FilterListModel(
id: vehicleBrandsForFilters[i].id!,
title: "${vehicleBrandsForFilters[i].vehicleBrandDescription}",
titleN: "${vehicleBrandsForFilters[i].vehicleBrandDescriptionN}",
iconUrl: vehicleBrandsForFilters[i].imageUrl ?? "",
isSelected: false,
));
}
exploreAdsFilterOptions.insert(0, FilterListModel(title: "All Ads", isSelected: true, id: 0));
exploreAdsFilterOptions.insert(0, FilterListModel(title: "All Ads", titleN: "جميع الاعلانات", isSelected: true, id: 0));
notifyListeners();
}

@ -130,7 +130,9 @@ class _AdsDetailViewState extends State<AdsDetailView> {
"${widget.adDetails.vehicle!.mileage!.mileageEnd} ${LocaleKeys.km.tr()}".toText(fontSize: 12),
],
),
widget.adDetails.createdOn != null ? DateTime.parse(widget.adDetails.createdOn!).getTimeAgo().toText(fontSize: 10, color: MyColors.lightTextColor) : const SizedBox(),
widget.adDetails.createdOn != null
? DateTime.parse(widget.adDetails.createdOn!).getTimeAgo(isArabic: isArabic).toText(fontSize: 10,color: MyColors.lightTextColor,): const SizedBox(),
//widget.adDetails.createdOn != null ? DateTime.parse(widget.adDetails.createdOn!).getTimeAgo().toText(fontSize: 10, color: MyColors.lightTextColor) : const SizedBox(),
],
),
Row(
@ -366,12 +368,26 @@ class _AdsDetailViewState extends State<AdsDetailView> {
Widget buildAdStartEndDates() {
String startDate = "";
String endDate = "";
bool isArabic = AppState().isArabic(context);
final atText = isArabic ? "الساعة" : "at";
if (widget.adDetails.startdate != null) {
startDate = "${DateHelper.formatAsDayMonthYear(DateTime.parse(widget.adDetails.startdate!))} at ${DateHelper.formatAsTime(DateTime.parse(widget.adDetails.startdate!))}";
// if (widget.adDetails.startdate != null) {
// startDate = "${DateHelper.formatAsDayMonthYear(DateTime.parse(widget.adDetails.startdate!))} at ${DateHelper.formatAsTime(DateTime.parse(widget.adDetails.startdate!))}";
// }
// if (widget.adDetails.enddate != null) {
// endDate = "${DateHelper.formatAsDayMonthYear(DateTime.parse(widget.adDetails.enddate!))} at ${DateHelper.formatAsTime(DateTime.parse(widget.adDetails.enddate!))}";
// }
if (widget.adDetails.startdate != null) {startDate = "${DateHelper.formatAsDayMonthYear(DateTime.parse(widget.adDetails.startdate!),
isArabic: isArabic,)} $atText ${DateHelper.formatAsTime(
DateTime.parse(widget.adDetails.startdate!),
isArabic: isArabic,
)}";
}
if (widget.adDetails.enddate != null) {
endDate = "${DateHelper.formatAsDayMonthYear(DateTime.parse(widget.adDetails.enddate!))} at ${DateHelper.formatAsTime(DateTime.parse(widget.adDetails.enddate!))}";
if (widget.adDetails.enddate != null) {endDate = "${DateHelper.formatAsDayMonthYear(DateTime.parse(widget.adDetails.enddate!),
isArabic: isArabic,)} $atText ${DateHelper.formatAsTime(
DateTime.parse(widget.adDetails.enddate!),
isArabic: isArabic,
)}";
}
return Column(
children: [

@ -153,10 +153,31 @@ class AdCard extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
if (isAdsFragment && adDetails.adPostStatus! == AdPostStatus.sold && adDetails.statuslabel != null && adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(text: adDetails.statuslabel ?? "", chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!)),
] else if (isAdsFragment && !context.read<AdVM>().isExploreAdsTapped && adDetails.statuslabel != null && adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(text: adDetails.statuslabel ?? "", chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!)),
// if (isAdsFragment && adDetails.adPostStatus! == AdPostStatus.sold && adDetails.statuslabel != null && adDetails.statuslabel!.isNotEmpty) ...[
// Utils.statusContainerChip(text: adDetails.statuslabel ?? "", chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!)),
// ] else if (isAdsFragment && !context.read<AdVM>().isExploreAdsTapped && adDetails.statuslabel != null && adDetails.statuslabel!.isNotEmpty) ...[
// Utils.statusContainerChip(text: adDetails.statuslabel ?? "", chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!)),
// ],
if (isAdsFragment &&
adDetails.adPostStatus! == AdPostStatus.sold &&
adDetails.statuslabel != null &&
adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(
text: isArabic
? (adDetails.statuslabelN ?? "")
: (adDetails.statuslabel ?? ""),
chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!),
),
] else if (isAdsFragment &&
!context.read<AdVM>().isExploreAdsTapped &&
adDetails.statuslabel != null &&
adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(
text: isArabic
? (adDetails.statuslabelN ?? "")
: (adDetails.statuslabel ?? ""),
chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!),
),
],
(adDetails.vehicle!.vehicleTitle ?? "").toText(
fontSize: 16,
@ -203,7 +224,9 @@ class AdCard extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
children: [
(adDetails.vehicle!.cityName ?? "").toText(color: MyColors.lightTextColor),
adDetails.createdOn != null ? DateTime.parse(adDetails.createdOn!).getTimeAgo().toText(color: MyColors.lightTextColor) : const SizedBox(),
// adDetails.createdOn != null ? DateTime.parse(adDetails.createdOn!).getTimeAgo().toText(color: MyColors.lightTextColor) : const SizedBox(),
adDetails.createdOn != null
? DateTime.parse(adDetails.createdOn!).getTimeAgo(isArabic: isArabic).toText(color: MyColors.lightTextColor) : const SizedBox(),
],
),
],

@ -70,15 +70,16 @@ class SelectAdTypeView extends StatelessWidget {
children: [
Expanded(
child: Consumer(builder: (BuildContext context, AdVM adVM, Widget? child) {
final isArabic = AppState().isArabic(context);
return ListView.separated(
itemCount: adVM.vehicleTypes.length,
itemBuilder: (BuildContext context, int index) {
VehicleTypeModel vehicleTypeModel = adVM.vehicleTypes[index];
return InkWell(
onTap: () async {
adVM.updateSelectionVehicleTypeId(SelectionModel(selectedId: vehicleTypeModel.id!, selectedOption: vehicleTypeModel.vehicleTypeName ?? "", errorValue: ""));
adVM.updateSelectionVehicleTypeId(SelectionModel(selectedId: vehicleTypeModel.id!, selectedOption: isArabic ? vehicleTypeModel.vehicleTypeNameN ?? "" : vehicleTypeModel.vehicleTypeName ?? "", errorValue: ""));
if (adVM.isAdEditEnabled) {
adVM.autoFillSelectedVehicleAdsDetails();
adVM.autoFillSelectedVehicleAdsDetails(context);
}
if (AppState().currentAppType == AppType.provider) {
if (isFromExtendAd && !adVM.isAdEditEnabled) {
@ -113,7 +114,9 @@ class SelectAdTypeView extends StatelessWidget {
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
vehicleTypeModel.vehicleTypeName.toString().toText(fontSize: 18),
isArabic ? vehicleTypeModel.vehicleTypeNameN.toString().toText(fontSize: 18)
: vehicleTypeModel.vehicleTypeName.toString().toText(fontSize: 18),
// vehicleTypeModel.vehicleTypeName.toString().toText(fontSize: 18),
getVehicleAdTypeIcon(vehicleTypeModel.vehicleTypeEnum!),
],
),

@ -15,6 +15,8 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../classes/app_state.dart';
class ForgetPasswordPage extends StatefulWidget {
const ForgetPasswordPage({Key? key}) : super(key: key);
@ -133,11 +135,19 @@ class _ForgetPasswordPageState extends State<ForgetPasswordPage> {
}
Widget getCountry() {
bool isArabic = AppState().isArabic(context);
if (_country != null) {
List<DropValue> dropList = [];
_country!.data?.forEach(
(element) {
dropList.add(DropValue(element.id ?? 0, "${element.countryName ?? ""} ${element.countryCode ?? ""}", element.countryCode ?? ""));
// dropList.add(DropValue(element.id ?? 0, "${element.countryName ?? ""} ${element.countryCode ?? ""}", element.countryCode ?? ""));
dropList.add(
DropValue(
element.id ?? 0,
"${isArabic ? (element.countryNameN ?? element.countryName ?? "") : (element.countryName ?? "")} ${element.countryCode ?? ""}",
element.countryCode ?? "",
),
);
},
);
return Padding(

@ -179,15 +179,48 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
);
}
// Widget getCountry(BuildContext context) {
// if (_country != null) {
// List<DropValue> dropList = [];
// _country!.data?.forEach((element) {
// dropList.add(DropValue(element.id ?? 0, "${element.countryName ?? ""} ${element.countryCode ?? ""}", element.countryCode ?? ""));
// });
// return DropdownField(
// dropdownValue: tempCountry,
// (DropValue value) {
// countryCode = value.subValue;
// tempCountry = value;
// setState(() {});
// },
// list: dropList,
// hint: LocaleKeys.selectCountryCode.tr(),
// );
// } else {
// return const Center(
// child: CircularProgressIndicator(),
// );
// }
// }
Widget getCountry(BuildContext context) {
bool isArabic = AppState().isArabic(context);
if (_country != null) {
List<DropValue> dropList = [];
_country!.data?.forEach((element) {
dropList.add(DropValue(element.id ?? 0, "${element.countryName ?? ""} ${element.countryCode ?? ""}", element.countryCode ?? ""));
dropList.add(
DropValue(
element.id ?? 0,
"${isArabic ? (element.countryNameN ?? element.countryName ?? "") : (element.countryName ?? "")} ${element.countryCode ?? ""}",
element.countryCode ?? "",
),
);
});
return DropdownField(
dropdownValue: tempCountry,
(DropValue value) {
(DropValue value) {
countryCode = value.subValue;
tempCountry = value;
setState(() {});

Loading…
Cancel
Save