fatima_dev #6

Open
Fatimah wants to merge 4 commits from fatima_dev into faiz_development_common

@ -686,30 +686,89 @@ extension BranchServiceEnumStatusToInt on ServiceStatusEnum {
}
}
// extension DateTimeConversions on DateTime {
// 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, isArabic: isArabic,);
// } else if ((difference.inDays / 7).floor() >= 1) {
// return (numericDates) ? '1 week ago' : 'Last week';
// } else if (difference.inDays >= 2) {
// return '${difference.inDays} days ago';
// } else if (difference.inDays >= 1) {
// return (numericDates) ? '1 day ago' : 'Yesterday';
// } else if (difference.inHours >= 2) {
// return '${difference.inHours} hours ago';
// } else if (difference.inHours >= 1) {
// return (numericDates) ? '1 hour ago' : 'An hour ago';
// } else if (difference.inMinutes >= 2) {
// return '${difference.inMinutes} min ago';
// } else if (difference.inMinutes >= 1) {
// return (numericDates) ? '1 min ago' : 'A min ago';
// } else if (difference.inSeconds >= 3) {
// return '${difference.inSeconds} sec ago';
// } else {
// return 'Just now';
// }
// }
// }
extension DateTimeConversions on DateTime {
String getTimeAgo({bool numericDates = true}) {
final date2 = DateTime.now();
final difference = date2.difference(this);
String getTimeAgo({
bool numericDates = true,
bool isArabic = false,
}) {
final now = DateTime.now();
final difference = now.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';
if (isArabic) {
return numericDates ? 'منذ أسبوع' : 'الأسبوع الماضي';
}
return numericDates ? '1 week ago' : 'Last week';
} else if (difference.inDays >= 2) {
return '${difference.inDays} days ago';
return isArabic
? 'منذ ${difference.inDays} أيام'
: '${difference.inDays} days ago';
} else if (difference.inDays >= 1) {
return (numericDates) ? '1 day ago' : 'Yesterday';
if (isArabic) {
return numericDates ? 'منذ يوم' : 'أمس';
}
return numericDates ? '1 day ago' : 'Yesterday';
} else if (difference.inHours >= 2) {
return '${difference.inHours} hours ago';
return isArabic
? 'منذ ${difference.inHours} ساعات'
: '${difference.inHours} hours ago';
} else if (difference.inHours >= 1) {
return (numericDates) ? '1 hour ago' : 'An hour ago';
if (isArabic) {
return numericDates ? 'منذ ساعة' : 'قبل ساعة';
}
return numericDates ? '1 hour ago' : 'An hour ago';
} else if (difference.inMinutes >= 2) {
return '${difference.inMinutes} min ago';
return isArabic
? 'منذ ${difference.inMinutes} دقائق'
: '${difference.inMinutes} min ago';
} else if (difference.inMinutes >= 1) {
return (numericDates) ? '1 min ago' : 'A min ago';
if (isArabic) {
return numericDates ? 'منذ دقيقة' : 'قبل دقيقة';
}
return numericDates ? '1 min ago' : 'A min ago';
} else if (difference.inSeconds >= 3) {
return '${difference.inSeconds} sec ago';
return isArabic
? 'منذ ${difference.inSeconds} ثوانٍ'
: '${difference.inSeconds} sec ago';
} else {
return 'Just now';
return isArabic ? 'الآن' : 'Just now';
}
}
}

@ -441,6 +441,7 @@ class CodegenLoader extends AssetLoader{
"usedSparePart": "قطع غيار مستعملة",
"hasYourCarHadAccident": "هل تعرضت سيارتك لأي حادث؟",
"odometerReading": "قراءة عداد المسافات (كم)",
"canMileageIncrease": "هل يمكن زيادة المسافة المقطوعة عند الفحص؟",
"currentlyInUse": "قيد الاستخدام حاليًا",
"demand": "الطلب",
"adDurationExpired": "انتهت مدة عرض الإعلان الخاص بك",
@ -1346,6 +1347,7 @@ static const Map<String,dynamic> _en_US = {
"usedSparePart": "Used Spare Part",
"hasYourCarHadAccident": "Has your car had any accident?",
"odometerReading": "Odometer Reading (Km)",
"canMileageIncrease": "Can the mileage be increased when checking?",
"currentlyInUse": "Currently in Use",
"demand": "Demand",
"adDurationExpired": "Your Ad Duration time is over",

@ -406,6 +406,7 @@ abstract class LocaleKeys {
static const usedSparePart = 'usedSparePart';
static const hasYourCarHadAccident = 'hasYourCarHadAccident';
static const odometerReading = 'odometerReading';
static const canMileageIncrease = 'canMileageIncrease';
static const currentlyInUse = 'currentlyInUse';
static const demand = 'demand';
static const adDurationExpired = 'adDurationExpired';

@ -15,6 +15,7 @@ class AdDetailsModel {
// List<Null>? reserved;
int? statusID;
String? statuslabel;
String? statuslabelN;
double? adsDurationPrice;
double? adsDurationDiscount;
double? adsDurationDiscountPrice;
@ -65,6 +66,7 @@ class AdDetailsModel {
// this.reserved,
this.statusID,
this.statuslabel,
this.statuslabelN,
this.adsDurationPrice,
this.adsDurationDiscount,
this.adsDurationDiscountPrice,
@ -126,6 +128,7 @@ class AdDetailsModel {
}
statusID = json['statusID'];
statuslabel = json['statuslabel'];
statuslabelN = json['statuslabelN'];
adsDurationPrice = json['adsDurationPrice'];
adsDurationDiscount = json['adsDurationDiscount'];
adsDurationDiscountPrice = json['adsDurationDiscountPrice'];
@ -172,6 +175,7 @@ class Vehicle {
int? id;
int? cityID;
String? cityName;
String? cityNameN;
double? demandAmount;
bool? isActive;
bool? isFinanceAvailable;
@ -194,6 +198,7 @@ class Vehicle {
String? vehicleVIN;
int? countryID;
String? countryName;
String? countryNameN;
String? currency;
int? odometer;
int? isInUsed;
@ -203,6 +208,7 @@ class Vehicle {
{this.id,
this.cityID,
this.cityName,
this.cityNameN,
this.demandAmount,
this.isActive,
this.isFinanceAvailable,
@ -225,6 +231,7 @@ class Vehicle {
this.vehicleVIN,
this.countryID,
this.countryName,
this.countryNameN,
this.currency,
this.odometer,
this.isInUsed,
@ -234,6 +241,7 @@ class Vehicle {
id = json['id'];
cityID = json['cityID'];
cityName = json['cityName'];
cityNameN = json['cityNameN'];
demandAmount = json['demandAmount'];
isActive = json['isActive'];
isFinanceAvailable = json['isFinanceAvailable'];
@ -266,6 +274,7 @@ class Vehicle {
vehicleVIN = json['vehicleVIN'];
countryID = json['countryID'];
countryName = json['duration'] != null && json['duration']['country'] != null ? json['duration']['country']['label'] : null;
countryNameN = json['duration'] != null && json['duration']['country'] != null ? json['duration']['country']['label'] : null;
currency = json['currency'];
odometer = json['odometer'];
isInUsed = json['isInUsed'];

@ -32,6 +32,7 @@ class BranchDetailModel {
String? countryName;
bool isExpanded = false;
bool? isFavorite;
String? cityNameN;
BranchDetailModel({
@ -62,6 +63,7 @@ class BranchDetailModel {
this.countryName,
this.isFavorite,
required this.isExpanded,
this.cityNameN,
});
List<GenericImageModel> populateBranchImages(value) {
@ -106,6 +108,7 @@ class BranchDetailModel {
branchAuditTrial = json["branchAuditTrial"] == null ? [] : List<BranchAuditTrial>.from(json["branchAuditTrial"]!.map((x) => BranchAuditTrial.fromJson(x)));
isExpanded = false;
isFavorite = false;
cityNameN = json["cityNameN"];
}
}

@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
import 'package:mc_common_app/models/chat_models/chat_message_model.dart';
@ -12,8 +14,11 @@ class RequestModel {
ShippingRequestStatusEnum? shippingStatusEnum;
SelfPickupRequestStatusEnum? selfPickupRequestStatusEnum;
String cityName;
String cityNameN;
String vehicleTypeName;
String vehicleTypeNameN;
String countryName;
String countryNameN;
String customerName;
String customerID;
String address;
@ -47,6 +52,7 @@ class RequestModel {
int? modifiedBy;
String? modifiedOn;
List<ChatMessageModel> chatMessages;
String? requestStatusNameN;
RequestModel({
required this.requestType,
@ -57,8 +63,11 @@ class RequestModel {
required this.shippingStatusEnum,
required this.selfPickupRequestStatusEnum,
required this.cityName,
required this.cityNameN,
required this.vehicleTypeName,
required this.vehicleTypeNameN,
required this.countryName,
required this.countryNameN,
required this.customerName,
required this.customerID,
required this.serviceProviders,
@ -92,6 +101,7 @@ class RequestModel {
required this.modifiedBy,
required this.modifiedOn,
required this.chatMessages,
required this.requestStatusNameN,
});
List<GenericImageModel> populateRequestImages(value) {
@ -114,8 +124,11 @@ class RequestModel {
shippingStatusEnum: json['shippingRequestStatus'] != null ? (json['shippingRequestStatus'] as int).toShippingStatusEnum() : ShippingRequestStatusEnum.pending,
selfPickupRequestStatusEnum: json['selfPickupRequestStatus'] != null ? (json['selfPickupRequestStatus'] as int).toSelfPickupStatusEnum() : SelfPickupRequestStatusEnum.preparingToCollect,
cityName: json["cityName"],
cityNameN: json["cityNameN"],
vehicleTypeName: json["vehicleTypeName"],
vehicleTypeNameN: json["vehicleTypeNameN"],
countryName: json["countryName"],
countryNameN: json["countryNameN"],
customerName: json["customerName"] ?? "",
address: json["address"] ?? "",
additionalAddressDetails: json['additionalAddress'] ?? "",
@ -148,6 +161,7 @@ class RequestModel {
createdOn: json["createdOn"],
modifiedBy: json["modifiedBy"],
modifiedOn: json["modifiedOn"],
requestStatusNameN: json["requestStatusNameN"],
chatMessages: [],
);
}

@ -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";
}

@ -194,19 +194,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();
}

@ -216,7 +216,7 @@ class RequestsVM extends BaseVM {
if (acceptedRequestsTypeFilterOptions.isEmpty) {
for (int i = 0; i < myRequestsTypeEnum.length; i++) {
acceptedRequestsTypeFilterOptions.add(FilterListModel(title: myRequestsTypeEnum[i].enumValueStr, isSelected: false, id: myRequestsTypeEnum[i].enumValue));
acceptedRequestsTypeFilterOptions.add(FilterListModel(title: myRequestsTypeEnum[i].enumValueStr, titleN: myRequestsTypeEnum[i].enumValueStrN, isSelected: false, id: myRequestsTypeEnum[i].enumValue));
}
acceptedRequestsTypeFilterOptions[0].isSelected = true;
}
@ -383,16 +383,16 @@ class RequestsVM extends BaseVM {
if (requestsTypeFilterOptions.isEmpty || acceptedRequestsTypeFilterOptions.isEmpty) {
for (int i = 0; i < myRequestsTypeEnum.length; i++) {
requestsTypeFilterOptions.add(FilterListModel(title: myRequestsTypeEnum[i].enumValueStr, isSelected: false, id: myRequestsTypeEnum[i].enumValue));
acceptedRequestsTypeFilterOptions.add(FilterListModel(title: myRequestsTypeEnum[i].enumValueStr, isSelected: false, id: myRequestsTypeEnum[i].enumValue));
requestsTypeFilterOptions.add(FilterListModel(title: myRequestsTypeEnum[i].enumValueStr,titleN: myRequestsTypeEnum[i].enumValueStrN, isSelected: false, id: myRequestsTypeEnum[i].enumValue));
acceptedRequestsTypeFilterOptions.add(FilterListModel(title: myRequestsTypeEnum[i].enumValueStr, titleN: myRequestsTypeEnum[i].enumValueStrN, isSelected: false, id: myRequestsTypeEnum[i].enumValue));
}
}
// Initialize spare parts condition filters (All, New, Used)
if (sparePartsConditionFilterOptions.isEmpty) {
sparePartsConditionFilterOptions.add(FilterListModel(title: "All", isSelected: true, id: 3)); // All
sparePartsConditionFilterOptions.add(FilterListModel(title: "New Spare Part", isSelected: false, id: 1)); // New
sparePartsConditionFilterOptions.add(FilterListModel(title: "Used Spare Part", isSelected: false, id: 2)); // Used
sparePartsConditionFilterOptions.add(FilterListModel(title: "All", titleN: "الكل", isSelected: true, id: 3)); // All
sparePartsConditionFilterOptions.add(FilterListModel(title: "New Spare Part", titleN: "قطعة غيار جديدة", isSelected: false, id: 1)); // New
sparePartsConditionFilterOptions.add(FilterListModel(title: "Used Spare Part",titleN: "قطعة غيار مستعملة", isSelected: false, id: 2)); // Used
}
if (vehicleBrands.isEmpty) {

@ -25,6 +25,7 @@ class VehicleDetails extends StatelessWidget {
@override
Widget build(BuildContext context) {
bool isArabic = AppState().isArabic(context);
return Consumer(builder: (BuildContext context, AdVM adVM, Widget? child) {
String roleAppState = "";
String roleName = "";
@ -56,7 +57,7 @@ class VehicleDetails extends StatelessWidget {
builder: (context) {
List<DropValue> vehicleBrandsDrop = [];
for (var element in adVM.vehicleBrands) {
vehicleBrandsDrop.add(DropValue(element.id?.toInt() ?? 0, element.vehicleBrandDescription ?? "", ""));
vehicleBrandsDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? element.vehicleBrandDescriptionN ?? "" : element.vehicleBrandDescription ?? "", ""));
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleBrandId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
@ -106,12 +107,16 @@ class VehicleDetails extends StatelessWidget {
Builder(builder: (context) {
List<DropValue> vehicleModelsDrop = [];
for (var element in adVM.vehicleModels) {
vehicleModelsDrop.add(DropValue(element.id?.toInt() ?? 0, element.model ?? "", ""));
// vehicleModelsDrop.add(DropValue(element.id?.toInt() ?? 0, element.model ?? "", ""));
vehicleModelsDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? (element.modelN ?? element.model ?? ""): (element.model ?? ""), "",
),
);
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleModelId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleModelsDrop,
dropdownValue: adVM.vehicleModelId.selectedId != -1 ? DropValue(adVM.vehicleModelId.selectedId, adVM.vehicleModelId.selectedOption, "") : null,
// dropdownValue: adVM.vehicleModelId.selectedId != -1 ? DropValue(adVM.vehicleModelId.selectedId, adVM.vehicleModelId.selectedOption, "") : null,
dropdownValue: adVM.vehicleModelId.selectedId != -1 ? vehicleModelsDrop.firstWhere((item) => item.id == adVM.vehicleModelId.selectedId,) : null,
hint: LocaleKeys.vehicleModel.tr(),
errorValue: adVM.vehicleModelId.errorValue,
);
@ -135,13 +140,17 @@ class VehicleDetails extends StatelessWidget {
Builder(builder: (context) {
List<DropValue> vehicleColorsDrop = [];
for (var element in adVM.vehicleColors) {
vehicleColorsDrop.add(DropValue(element.id?.toInt() ?? 0, element.color ?? "", ""));
// vehicleColorsDrop.add(DropValue(element.id?.toInt() ?? 0, element.color ?? "", ""));
vehicleColorsDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? (element.colorN ?? element.color ?? ""): (element.color ?? ""), "",
),
);
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleColorId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleColorsDrop,
hint: LocaleKeys.vehicleColor.tr(),
dropdownValue: adVM.vehicleColorId.selectedId != -1 ? DropValue(adVM.vehicleColorId.selectedId, adVM.vehicleColorId.selectedOption, "") : null,
// dropdownValue: adVM.vehicleColorId.selectedId != -1 ? DropValue(adVM.vehicleColorId.selectedId, adVM.vehicleColorId.selectedOption, "") : null,
dropdownValue: adVM.vehicleColorId.selectedId != -1 ? vehicleColorsDrop.firstWhere((item) => item.id == adVM.vehicleColorId.selectedId,) : null,
errorValue: adVM.vehicleColorId.errorValue,
);
}),
@ -149,12 +158,14 @@ class VehicleDetails extends StatelessWidget {
Builder(builder: (context) {
List<DropValue> vehicleConditionsDrop = [];
for (var element in adVM.vehicleConditions) {
vehicleConditionsDrop.add(DropValue(element.id?.toInt() ?? 0, element.condition ?? "", ""));
vehicleConditionsDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? (element.conditionN ?? element.condition ?? ""): (element.condition ?? ""), ""));
// vehicleConditionsDrop.add(DropValue(element.id?.toInt() ?? 0, element.condition ?? "", ""));
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleConditionId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleConditionsDrop,
dropdownValue: adVM.vehicleConditionId.selectedId != -1 ? DropValue(adVM.vehicleConditionId.selectedId, adVM.vehicleConditionId.selectedOption, "") : null,
dropdownValue: adVM.vehicleConditionId.selectedId != -1 ? vehicleConditionsDrop.firstWhere((item) => item.id == adVM.vehicleConditionId.selectedId,) : null,
// dropdownValue: adVM.vehicleConditionId.selectedId != -1 ? DropValue(adVM.vehicleConditionId.selectedId, adVM.vehicleConditionId.selectedOption, "") : null,
hint: LocaleKeys.vehicleCondition.tr(),
errorValue: adVM.vehicleConditionId.errorValue,
);
@ -163,13 +174,15 @@ class VehicleDetails extends StatelessWidget {
Builder(builder: (context) {
List<DropValue> vehicleCategoriesDrop = [];
for (var element in adVM.vehicleCategories) {
vehicleCategoriesDrop.add(DropValue(element.id?.toInt() ?? 0, element.category ?? "", ""));
vehicleCategoriesDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? (element.categoryN ?? element.category ?? ""): (element.category ?? ""), ""));
// vehicleCategoriesDrop.add(DropValue(element.id?.toInt() ?? 0, element.category ?? "", ""));
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleCategoryId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleCategoriesDrop,
hint: LocaleKeys.vehicleCategory.tr(),
dropdownValue: adVM.vehicleCategoryId.selectedId != -1 ? DropValue(adVM.vehicleCategoryId.selectedId, adVM.vehicleCategoryId.selectedOption, "") : null,
dropdownValue: adVM.vehicleCategoryId.selectedId != -1 ? vehicleCategoriesDrop.firstWhere((item) => item.id == adVM.vehicleCategoryId.selectedId,) : null,
// dropdownValue: adVM.vehicleCategoryId.selectedId != -1 ? DropValue(adVM.vehicleCategoryId.selectedId, adVM.vehicleCategoryId.selectedOption, "") : null,
errorValue: adVM.vehicleCategoryId.errorValue,
);
}),
@ -191,13 +204,15 @@ class VehicleDetails extends StatelessWidget {
Builder(builder: (context) {
List<DropValue> vehicleTransmissionsDrop = [];
for (var element in adVM.vehicleTransmissions) {
vehicleTransmissionsDrop.add(DropValue(element.id?.toInt() ?? 0, element.transmission ?? "", ""));
vehicleTransmissionsDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? (element.transmissionN ?? element.transmission ?? ""): (element.transmission ?? ""), ""));
// vehicleTransmissionsDrop.add(DropValue(element.id?.toInt() ?? 0, element.transmission ?? "", ""));
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleTransmissionId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleTransmissionsDrop,
hint: LocaleKeys.vehicleTransmission.tr(),
dropdownValue: adVM.vehicleTransmissionId.selectedId != -1 ? DropValue(adVM.vehicleTransmissionId.selectedId, adVM.vehicleTransmissionId.selectedOption, "") : null,
dropdownValue: adVM.vehicleTransmissionId.selectedId != -1 ? vehicleTransmissionsDrop.firstWhere((item) => item.id == adVM.vehicleTransmissionId.selectedId,) : null,
//dropdownValue: adVM.vehicleTransmissionId.selectedId != -1 ? DropValue(adVM.vehicleTransmissionId.selectedId, adVM.vehicleTransmissionId.selectedOption, "") : null,
errorValue: adVM.vehicleTransmissionId.errorValue,
);
}),
@ -206,12 +221,14 @@ class VehicleDetails extends StatelessWidget {
Builder(builder: (context) {
List<DropValue> vehicleCountriesDrop = [];
for (var element in adVM.vehicleCountries) {
vehicleCountriesDrop.add(DropValue(element.id?.toInt() ?? 0, element.countryName ?? "", ""));
vehicleCountriesDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? (element.countryNameN ?? element.countryName ?? ""): (element.countryName ?? ""), ""));
// vehicleCountriesDrop.add(DropValue(element.id?.toInt() ?? 0, element.countryName ?? "", ""));
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleCountryId(SelectionModel(selectedOption: value.value, selectedId: value.id)),
list: vehicleCountriesDrop,
dropdownValue: adVM.vehicleCountryId.selectedId != -1 ? DropValue(adVM.vehicleCountryId.selectedId, adVM.vehicleCountryId.selectedOption, "") : null,
dropdownValue: adVM.vehicleCountryId.selectedId != -1 ? vehicleCountriesDrop.firstWhere((item) => item.id == adVM.vehicleCountryId.selectedId,) : null,
// dropdownValue: adVM.vehicleCountryId.selectedId != -1 ? DropValue(adVM.vehicleCountryId.selectedId, adVM.vehicleCountryId.selectedOption, "") : null,
hint: LocaleKeys.vehicleCountry.tr(),
errorValue: adVM.vehicleCountryId.errorValue,
);
@ -227,12 +244,14 @@ class VehicleDetails extends StatelessWidget {
Builder(builder: (context) {
List<DropValue> vehicleCitiesDrop = [];
for (var element in adVM.vehicleCities) {
vehicleCitiesDrop.add(DropValue(element.id?.toInt() ?? 0, element.cityName ?? "", ""));
vehicleCitiesDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? (element.cityNameN ?? element.cityName ?? ""): (element.cityName ?? ""), ""));
// vehicleCitiesDrop.add(DropValue(element.id?.toInt() ?? 0, element.cityName ?? "", ""));
}
return DropdownField(
(DropValue value) => adVM.updateSelectionVehicleCityId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
list: vehicleCitiesDrop,
dropdownValue: adVM.vehicleCityId.selectedId != -1 ? DropValue(adVM.vehicleCityId.selectedId, adVM.vehicleCityId.selectedOption, "") : null,
dropdownValue: adVM.vehicleCityId.selectedId != -1 ? vehicleCitiesDrop.firstWhere((item) => item.id == adVM.vehicleCityId.selectedId,) : null,
// dropdownValue: adVM.vehicleCityId.selectedId != -1 ? DropValue(adVM.vehicleCityId.selectedId, adVM.vehicleCityId.selectedOption, "") : null,
hint: LocaleKeys.vehicleCity.tr(),
errorValue: adVM.vehicleCityId.errorValue,
);

@ -117,7 +117,7 @@ class _AdsDetailViewState extends State<AdsDetailView> {
child: "${widget.adDetails.vehicle!.vehicleTitle} | ${isArabic ? widget.adDetails.vehicle!.color!.labelN : widget.adDetails.vehicle!.color!.label}|"
" ${widget.adDetails.id}".toText(fontSize: 16, maxLines: 2),
),
(widget.adDetails.vehicle!.cityName ?? "").toText(fontSize: 10, color: MyColors.lightTextColor),
(isArabic ? widget.adDetails.vehicle!.cityNameN ?? "" : widget.adDetails.vehicle!.cityName ?? "").toText(fontSize: 10, color: MyColors.lightTextColor),
],
),
Row(
@ -129,7 +129,7 @@ class _AdsDetailViewState extends State<AdsDetailView> {
"${isArabic? widget.adDetails.vehicle!.model!.labelN :widget.adDetails.vehicle!.model!.label}".toText(fontSize: 12),
],
),
(widget.adDetails.vehicle!.countryName ?? '').toText(fontSize: 10, color: MyColors.lightTextColor),
(isArabic ? widget.adDetails.vehicle!.countryNameN?? '' : widget.adDetails.vehicle!.countryName?? '').toText(fontSize: 10, color: MyColors.lightTextColor),
],
),
Row(
@ -148,7 +148,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(
@ -384,12 +386,26 @@ class _AdsDetailViewState extends State<AdsDetailView> {
Widget buildAdStartEndDates() {
String startDate = "";
String endDate = "";
if (widget.adDetails.startdate != null) {
startDate = "${DateHelper.formatAsDayMonthYear(DateTime.parse(widget.adDetails.startdate!))} at ${DateHelper.formatAsTime(DateTime.parse(widget.adDetails.startdate!))}";
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.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: [

@ -275,10 +275,31 @@ class _AdCardState extends State<AdCard> {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
if (isAdsFragment && widget.adDetails.adPostStatus! == AdPostStatus.sold && widget.adDetails.statuslabel != null && widget.adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(text: widget.adDetails.statuslabel ?? "", chipColor: Utils.getChipColorByAdStatus(widget.adDetails.adPostStatus!)),
] else if (isAdsFragment && !context.read<AdVM>().isExploreAdsTapped && widget.adDetails.statuslabel != null && widget.adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(text: widget.adDetails.statuslabel ?? "", chipColor: Utils.getChipColorByAdStatus(widget.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 &&
widget.adDetails.adPostStatus! == AdPostStatus.sold &&
widget.adDetails.statuslabel != null &&
widget.adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(
text: isArabic
? (widget.adDetails.statuslabelN ?? "")
: (widget.adDetails.statuslabel ?? ""),
chipColor: Utils.getChipColorByAdStatus(widget.adDetails.adPostStatus!),
),
] else if (isAdsFragment &&
!context.read<AdVM>().isExploreAdsTapped &&
widget.adDetails.statuslabel != null &&
widget.adDetails.statuslabel!.isNotEmpty) ...[
Utils.statusContainerChip(
text: isArabic
? (widget.adDetails.statuslabelN ?? "")
: (widget.adDetails.statuslabel ?? ""),
chipColor: Utils.getChipColorByAdStatus(widget.adDetails.adPostStatus!),
),
],
// Show Accident Free chip for explore ads when isAccidentFree is true
if (isAdsFragment && context.read<AdVM>().isExploreAdsTapped && widget.adDetails.vehicle?.isAccidentFree == true) ...[
@ -328,8 +349,16 @@ class _AdCardState extends State<AdCard> {
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.start,
children: [
(widget.adDetails.vehicle!.cityName ?? "").toText(color: MyColors.lightTextColor),
widget.adDetails.createdOn != null ? DateTime.parse(widget.adDetails.createdOn!).getTimeAgo().toText(color: MyColors.lightTextColor) : const SizedBox(),
(isArabic? widget.adDetails.vehicle!.cityNameN ?? "" : widget.adDetails.vehicle!.cityName ?? "").toText(color: MyColors.lightTextColor),
// widget.adDetails.createdOn != null ? DateTime.parse(widget.adDetails.createdOn!).getTimeAgo().toText(color: MyColors.lightTextColor) : const SizedBox(),
widget.adDetails.createdOn != null
? DateFormat(
'd MMM, y',
isArabic ? 'ar' : 'en',
)
.format(DateTime.parse(widget.adDetails.createdOn!))
.toText(color: MyColors.lightTextColor)
: const SizedBox(),
],
),
],

@ -73,6 +73,7 @@ class BuildFooterButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isArabic = AppState().isArabic(context);
return Consumer(
builder: (BuildContext context, AdVM adVm, Widget? child) {
switch (adVm.currentProgressStep) {
@ -83,7 +84,8 @@ class BuildFooterButton extends StatelessWidget {
child: ShowFillButton(
txtColor: MyColors.black,
maxHeight: 55,
title: "Save As Draft",
// title: "Save As Draft",
title: isArabic ? "حفظ كمسودة" : "Save As Draft",
onPressed: () async {
await adVm.saveAdAsDraft(context: context, stepNoEnum: AdCreationStepsEnum.vehicleDetails, bypassValidation: true);
adVm.isDraftEditEnabled = false;
@ -118,7 +120,8 @@ class BuildFooterButton extends StatelessWidget {
child: ShowFillButton(
txtColor: MyColors.black,
maxHeight: 55,
title: "Save As Draft",
// title: "Save As Draft",
title: isArabic ? "حفظ كمسودة" : "Save As Draft",
onPressed: () async {
await adVm.saveAdAsDraft(context: context, stepNoEnum: AdCreationStepsEnum.damageParts, bypassValidation: true);
adVm.isDraftEditEnabled = false;
@ -153,7 +156,8 @@ class BuildFooterButton extends StatelessWidget {
child: ShowFillButton(
txtColor: MyColors.black,
maxHeight: 55,
title: "Save As Draft",
// title: "Save As Draft",
title: isArabic ? "حفظ كمسودة" : "Save As Draft",
onPressed: () async {
await adVm.saveAdAsDraft(context: context, stepNoEnum: AdCreationStepsEnum.adDuration, bypassValidation: true);
adVm.isDraftEditEnabled = false;
@ -188,7 +192,8 @@ class BuildFooterButton extends StatelessWidget {
child: ShowFillButton(
txtColor: MyColors.black,
maxHeight: 55,
title: "Save As Draft",
//title: "Save As Draft",
title: isArabic ? "حفظ كمسودة" : "Save As Draft",
onPressed: () async {
await adVm.saveAdAsDraft(context: context, stepNoEnum: AdCreationStepsEnum.reviewAd, bypassValidation: true);
adVm.isDraftEditEnabled = false;

@ -70,13 +70,14 @@ 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(context);
}
@ -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!),
],
),

@ -29,6 +29,7 @@ class RequestDetailPage extends StatelessWidget {
const RequestDetailPage({super.key, required this.requestDetailPageArguments});
Widget buildRequestDetailsContainer(BuildContext context) {
bool isArabic = AppState().isArabic(context);
final requestDetail = requestDetailPageArguments.requestModel;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -42,7 +43,7 @@ class RequestDetailPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
requestDetail.vehicleTypeName.toText(fontSize: 16, letterSpacing: -0.64),
isArabic ? requestDetail.vehicleTypeNameN.toText(fontSize: 16, letterSpacing: -0.64) : requestDetail.vehicleTypeName.toText(fontSize: 16, letterSpacing: -0.64),
showItem("${LocaleKeys.brand.tr()}: ", requestDetail.brand),
showItem("${LocaleKeys.model.tr()}: ", requestDetail.model),
showItem("${LocaleKeys.year.tr()}: ", "${requestDetail.year}"),
@ -53,13 +54,21 @@ class RequestDetailPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.start,
children: [
"${requestDetail.city ?? ""} ${requestDetail.countryName}".toText(
"${isArabic ? requestDetail.cityNameN : requestDetail.city} "
"${isArabic ? requestDetail.countryNameN : requestDetail.countryName}"
.toText(
color: MyColors.lightTextColor,
),
// "${requestDetail.city ?? ""} ${requestDetail.countryName}".toText(
// color: MyColors.lightTextColor,
// ),
if (requestDetail.createdOn != null) ...[
DateTime.parse(requestDetail.createdOn!).getTimeAgo().toText(
color: MyColors.lightTextColor,
),
// DateTime.parse(requestDetail.createdOn!).getTimeAgo().toText(
// color: MyColors.lightTextColor,
// ),
DateTime.parse(requestDetail.createdOn!).getTimeAgo(isArabic: isArabic)
.toText(color: MyColors.lightTextColor,
),
],
],
),

@ -21,6 +21,7 @@ class RequestItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isArabic = AppState().isArabic(context);
String imageUrl = "";
if (request.requestImages != null && request.requestImages!.isNotEmpty) {
imageUrl = request.requestImages!.first.imageUrl ?? "";
@ -42,9 +43,20 @@ class RequestItem extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (shouldShowStatuses) ...[
// Utils.statusContainerChip(
// text: request.requestStatusName.toLowerCase() == "InProgress".toLowerCase() ? "In Progress" : request.requestStatusName,
// chipColor: Utils.getChipColorByRequestStatus(request.requestStatus)),
Utils.statusContainerChip(
text: request.requestStatusName.toLowerCase() == "InProgress".toLowerCase() ? "In Progress" : request.requestStatusName,
chipColor: Utils.getChipColorByRequestStatus(request.requestStatus)),
text: isArabic
? (request.requestStatusNameN?.isNotEmpty == true
? request.requestStatusNameN!
: request.requestStatusName)
: (request.requestStatusName.toLowerCase() == "inprogress"
? "In Progress"
: request.requestStatusName),
chipColor:
Utils.getChipColorByRequestStatus(request.requestStatus),
),
],
6.height,
"${request.brand} ${request.model} | ${request.id}".toText(fontSize: 16, letterSpacing: -0.64),
@ -61,7 +73,7 @@ class RequestItem extends StatelessWidget {
showItem("${LocaleKeys.year.tr()}:", "${request.year}"),
],
if (request.vehicleTypeName.isNotEmpty) ...[
showItem("${LocaleKeys.vehicleType.tr()}:", request.vehicleTypeName),
showItem("${LocaleKeys.vehicleType.tr()}:", isArabic ? request.vehicleTypeNameN :request.vehicleTypeName),
],
showItem("${LocaleKeys.description.tr()}:", request.description),
],
@ -86,9 +98,21 @@ class RequestItem extends StatelessWidget {
),
],
2.height,
request.cityName.toText(color: MyColors.lightTextColor, letterSpacing: -0.4, fontSize: 10),
// request.cityName.toText(color: MyColors.lightTextColor, letterSpacing: -0.4, fontSize: 10),
// if (request.createdOn != null) ...[
// DateTime.parse(request.createdOn!).getTimeAgo().toText(color: MyColors.lightTextColor, letterSpacing: -0.4, fontSize: 10),
// ],
(isArabic
? (request.cityNameN?.isNotEmpty == true ? request.cityNameN! : request.cityName) : request.cityName).toText(color: MyColors.lightTextColor,
letterSpacing: -0.4,
fontSize: 10,
),
if (request.createdOn != null) ...[
DateTime.parse(request.createdOn!).getTimeAgo().toText(color: MyColors.lightTextColor, letterSpacing: -0.4, fontSize: 10),
DateTime.parse(request.createdOn!).getTimeAgo(isArabic: isArabic).toText(
color: MyColors.lightTextColor,
letterSpacing: -0.4,
fontSize: 10,
),
],
],
)

@ -7,6 +7,8 @@ import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import '../../../classes/app_state.dart';
class CustomSettingOptionsTile extends StatelessWidget {
final Widget leadingWidget;
final String titleText;
@ -31,6 +33,7 @@ class CustomSettingOptionsTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isArabic = AppState().isArabic(context);
return Column(
children: [
Row(
@ -56,10 +59,20 @@ class CustomSettingOptionsTile extends StatelessWidget {
],
),
isForLanguage
? LocaleKeys.english.tr().toText(fontSize: 12, isUnderLine: true, color: MyColors.primaryColor)
? (isArabic ? "English": "عربي")
.toText(
fontSize: 12,
isUnderLine: true,
color: MyColors.primaryColor,
)
: showTrailingArrow
? const Icon(Icons.arrow_forward, size: 18)
: const SizedBox()
? const Icon(Icons.arrow_forward, size: 18)
: const SizedBox(),
// isForLanguage
// ? LocaleKeys.english.tr().toText(fontSize: 12, isUnderLine: true, color: MyColors.primaryColor)
// : showTrailingArrow
// ? const Icon(Icons.arrow_forward, size: 18)
// : const SizedBox()
],
).onPress(onTap),
subTitle != null ? 3.height : 5.height,

@ -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(() {});

@ -69,15 +69,21 @@ class FiltersList extends StatelessWidget {
],
// Text displayed in the chip
(isArabic
? (filterList[index].titleN ?? filterList[index].title)
: filterList[index].title)
.tr()
.toText(
// filterList[index].title.tr().toText(
fontSize: 13,
letterSpacing: -0.14,
color: filterList[index].isSelected ? MyColors.white : null,
),
? (filterList[index].titleN.isNotEmpty ? filterList[index].titleN : filterList[index].title) : filterList[index].title).toText(
fontSize: 13,
letterSpacing: -0.14,
color: filterList[index].isSelected ? MyColors.white : null,
)
// (isArabic
// ? (filterList[index].titleN ?? filterList[index].title)
// : filterList[index].title)
// .tr()
// .toText(
// // filterList[index].title.tr().toText(
// fontSize: 13,
// letterSpacing: -0.14,
// color: filterList[index].isSelected ? MyColors.white : null,
// ),
],
),
),

@ -93,10 +93,10 @@ packages:
dependency: transitive
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
url: "https://pub.dev"
source: hosted
version: "1.4.0"
version: "1.4.1"
clock:
dependency: transitive
description:
@ -817,26 +817,26 @@ packages:
dependency: transitive
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
url: "https://pub.dev"
source: hosted
version: "0.12.17"
version: "0.12.19"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
url: "https://pub.dev"
source: hosted
version: "0.11.1"
version: "0.13.0"
meta:
dependency: transitive
description:
name: meta
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.18.0"
mime:
dependency: transitive
description:
@ -1286,10 +1286,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
url: "https://pub.dev"
source: hosted
version: "0.7.6"
version: "0.7.11"
timezone:
dependency: transitive
description:
@ -1483,5 +1483,5 @@ packages:
source: hosted
version: "6.5.0"
sdks:
dart: ">=3.8.0-0 <4.0.0"
dart: ">=3.10.0-0 <4.0.0"
flutter: ">=3.24.0"

Loading…
Cancel
Save