Merge pull request 'haroon_dev' (#334) from haroon_dev into master

Reviewed-on: https://34.17.182.140/Haroon6138/HMG_Patient_App_New/pulls/334
master
Haroon6138 8 hours ago
commit fc3377c17b

@ -211,7 +211,7 @@ class ApiClientImp implements ApiClient {
}
body['TokenID'] = "@dm!n";
// body['PatientID'] = 6424682;
// body['PatientID'] = 3648831;
// body['PatientID'] = 89754444;
// body['PatientTypeID'] = 1;
// body['PatientOutSA'] = 0;

@ -916,7 +916,8 @@ class Utils {
appState.isArabic()
? Container()
: Utils.buildSvgWithAssets(
icon: isSaudiCurrency ? AppAssets.saudi_riyal_icon : AppAssets.uae_dirham_symbol,
// icon: isSaudiCurrency ? AppAssets.saudi_riyal_icon : AppAssets.uae_dirham_symbol,
icon: (getIt.get<AppState>().getAuthenticatedUser()!.outSa == 0) ? AppAssets.saudi_riyal_icon : AppAssets.uae_dirham_symbol,
iconColor: iconColor,
width: iconSize.h,
height: iconSize.h,
@ -928,7 +929,8 @@ class Utils {
!appState.isArabic()
? Container()
: Utils.buildSvgWithAssets(
icon: isSaudiCurrency ? AppAssets.saudi_riyal_icon : AppAssets.uae_dirham_symbol,
// icon: isSaudiCurrency ? AppAssets.saudi_riyal_icon : AppAssets.uae_dirham_symbol,
icon: (getIt.get<AppState>().getAuthenticatedUser()!.outSa == 0) ? AppAssets.saudi_riyal_icon : AppAssets.uae_dirham_symbol,
iconColor: iconColor,
width: iconSize.h,
height: iconSize.h,
@ -958,7 +960,7 @@ class Utils {
WidgetSpan(
alignment: PlaceholderAlignment.baseline,
baseline: TextBaseline.alphabetic,
child: Utils.buildSvgWithAssets(icon: AppAssets.saudi_riyal_icon, width: iconSize.h, height: iconSize.h, iconColor: resolvedIconColor),
child: Utils.buildSvgWithAssets(icon: (getIt.get<AppState>().getAuthenticatedUser()!.outSa == 1) ? AppAssets.uae_dirham_symbol : AppAssets.saudi_riyal_icon, width: iconSize.h, height: iconSize.h, iconColor: resolvedIconColor),
),
TextSpan(
// text: NumberFormat.currency(locale: 'en_US', symbol: " ", decimalDigits: 0).format(habibWalletAmount),

@ -1127,7 +1127,9 @@ class BookAppointmentsViewModel extends ChangeNotifier {
result.fold(
(failure) async {
print(failure);
if(onError != null) {
onError(failure.message);
}
},
(apiResponse) {
if (apiResponse.messageStatus == 2) {

@ -1010,7 +1010,9 @@ class MyAppointmentsViewModel extends ChangeNotifier {
}
}
// patientQueueDetailsList.first.callType = 1;
patientQueueDetailsList.removeWhere((element) => element.patientID == patientArrivedAppointmentsHistoryList.first.patientID);
// if (patientQueueDetailsList.length > 1) {
patientQueueDetailsList.removeWhere((element) => element.patientID == patientArrivedAppointmentsHistoryList.first.patientID);
// }
} else {
patientQueueDetailsList.clear();
isPatientHasQueueAppointment = false;

@ -319,7 +319,7 @@ class PayfortViewModel extends ChangeNotifier {
"amount": Platform.isAndroid ? (num.parse(amount) * 100).toInt() : (num.parse(amount) * 100).toInt().toString(),
// "amount": "100000",
"currency": getIt.get<AppState>().getAuthenticatedUser()!.outSa! == 0 ? "SAR" : "AED",
"language": "en",
"language": getIt.get<AppState>().isArabic() ? "ar" : "en",
"customer_email": "CustID_$fileNumber@HMG.com",
"sdk_token": sdkTokenResponse!.sdkToken,
"customer_name": "${getIt.get<AppState>().getAuthenticatedUser()!.firstName} ${getIt.get<AppState>().getAuthenticatedUser()!.lastName}",
@ -353,6 +353,11 @@ class PayfortViewModel extends ChangeNotifier {
// Process real payment rejection errors here
print("Actual Payment Failure: ${e.details.toString()}");
if (onFailed != null) {
final paymentMap = (e.details as Map).cast<String, dynamic>();
paymentMap["message"] = e.details["response_message"] ?? "Payment failed with unknown error.";
onFailed(PayFortFailureResult.fromMap(paymentMap));
}
} catch (error) {
print("Generic Error: $error");
}

@ -65,7 +65,7 @@ class PayTabsViewModel extends ChangeNotifier {
"12626"),
alternativePaymentMethods: [],
linkBillingNameWithCardHolderName: true,
simplifyApplePayValidation: false,
simplifyApplePayValidation: true,
);
paymentConfiguration.iOSThemeConfigurations = IOSThemeConfigurations(

@ -23,10 +23,14 @@ class WeatherMonitorViewModel extends ChangeNotifier {
final List<GetCityInfoList> _cityInfoList = [];
bool isLoading = false;
bool isWeatherNeedToLoad = true;
List<GetCityInfoList> get cityInfoList => _cityInfoList;
Future<void> fetchCityInfoList({Function(dynamic)? onSuccess, Function(String)? onError}) async {
if (!isWeatherNeedToLoad) {
return;
}
isLoading = true;
notifyListeners();
_cityInfoList.clear();
@ -34,7 +38,7 @@ class WeatherMonitorViewModel extends ChangeNotifier {
// Check if location permission is already granted
final isLocationEnabled = await locationUtils.isLocationPermissionEnabled();
if (isLocationEnabled) {
if (isLocationEnabled && getIt.get<AppState>().userLat != 0.0 && getIt.get<AppState>().userLong != 0.0) {
// Permission already granted, fetch data directly
isLocationAvailable = true;
final result = await weatherRepo.getCityInfo();
@ -61,6 +65,7 @@ class WeatherMonitorViewModel extends ChangeNotifier {
if (onSuccess != null) {
onSuccess(apiResponse);
}
isWeatherNeedToLoad = false;
}
},
);

@ -69,11 +69,13 @@ class _AppointmentPaymentPageState extends State<AppointmentPaymentPage> {
widget.patientAppointmentHistoryResponseModel.clinicID,
widget.patientAppointmentHistoryResponseModel.appointmentNo.toString(), widget.patientAppointmentHistoryResponseModel.isLiveCareAppointment ?? false, onSuccess: (val) {
myAppointmentsViewModel.getTamaraInstallmentsDetails().then((val) {
if (myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax! >= myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel!.minLimit!.amount! &&
myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax! <= myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel!.maxLimit!.amount!) {
setState(() {
isShowTamara = true;
});
if (myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel != null) {
if (myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax! >= myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel!.minLimit!.amount! &&
myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax! <= myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel!.maxLimit!.amount!) {
setState(() {
isShowTamara = true;
});
}
}
});
}, onError: (err) {

@ -26,6 +26,8 @@ class AppointmentQueuePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
appState = getIt.get<AppState>();
final currentQueue = getIt.get<MyAppointmentsViewModel>().currentPatientQueueDetails;
final currentStatus = getIt.get<MyAppointmentsViewModel>().currentQueueStatus;
return Scaffold(
backgroundColor: AppColors.bgScaffoldColor,
body: Consumer<MyAppointmentsViewModel>(builder: (context, myAppointmentsVM, child) {
@ -67,7 +69,7 @@ class AppointmentQueuePage extends StatelessWidget {
labelText: myAppointmentsVM.currentQueueStatus == 0 ? LocaleKeys.inQueue.tr(context: context) : LocaleKeys.yourTurn.tr(context: context),
backgroundColor: Utils.getCardBorderColor(myAppointmentsVM.currentQueueStatus).withValues(alpha: 0.20),
textColor: Utils.getCardBorderColor(myAppointmentsVM.currentQueueStatus),
).toShimmer2(isShow: myAppointmentsVM.patientQueueDetailsList.isEmpty),
).toShimmer2(isShow: (currentQueue.queueNo == null || currentQueue.queueNo!.isEmpty)),
Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.greyColor,
@ -88,7 +90,7 @@ class AppointmentQueuePage extends StatelessWidget {
SizedBox(height: 8.h),
(myAppointmentsVM.currentPatientQueueDetails.queueNo ?? "IM-123")
.toText32(isBold: true)
.toShimmer2(isShow: myAppointmentsVM.isAppointmentQueueDetailsLoading || myAppointmentsVM.patientQueueDetailsList.isEmpty),
.toShimmer2(isShow: myAppointmentsVM.isAppointmentQueueDetailsLoading || (currentQueue.queueNo == null || currentQueue.queueNo!.isEmpty)),
SizedBox(height: 8.h),
CustomButton(
text: Utils.getCardButtonText(myAppointmentsVM.currentQueueStatus, myAppointmentsVM.currentPatientQueueDetails.roomNo ?? ""),
@ -103,7 +105,7 @@ class AppointmentQueuePage extends StatelessWidget {
height: 40.h,
iconColor: AppColors.whiteColor,
iconSize: 18.h,
).toShimmer2(isShow: myAppointmentsVM.isAppointmentQueueDetailsLoading || myAppointmentsVM.patientQueueDetailsList.isEmpty),
).toShimmer2(isShow: myAppointmentsVM.isAppointmentQueueDetailsLoading || (currentQueue.queueNo == null || currentQueue.queueNo!.isEmpty)),
],
),
),

@ -10,6 +10,7 @@ import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/patient_appointment_history_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/my_appointments_view_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
@ -153,9 +154,15 @@ class AppointmentCheckinBottomSheet extends StatelessWidget {
myAppointmentsViewModel.setIsAppointmentDataToBeLoaded(true);
myAppointmentsViewModel.initAppointmentsViewModel();
myAppointmentsViewModel.getPatientAppointments(true, false);
getIt.get<HabibWalletViewModel>().setIsWalletAmountToBeLoaded(true);
getIt.get<HabibWalletViewModel>().initHabibWalletProvider();
getIt.get<HabibWalletViewModel>().getPatientBalanceAmount();
LoaderBottomSheet.hideLoader();
showCommonBottomSheetWithoutHeight(context, title: LocaleKeys.success.tr(context: context), child: Utils.getSuccessWidget(loadingText: LocaleKeys.success.tr()), callBackFunc: () async {
// await myAppointmentsViewModel.getPatientAppointmentQueueDetails();
Navigator.of(context).pop();
Navigator.pushAndRemoveUntil(
context,

@ -432,8 +432,15 @@ class _ReviewAppointmentPageState extends State<ReviewAppointmentPage> {
if (bookAppointmentsViewModel.isLiveCareSchedule) {
await bookAppointmentsViewModel.insertSpecificAppointmentForLiveCare(onError: (err) {
print(err.data["ErrorEndUserMessage"]);
LoaderBottomSheet.hideLoader();
showCommonBottomSheetWithoutHeight(
title: LocaleKeys.notice.tr(context: context),
context,
child: Utils.getErrorWidget(loadingText: err.toString()),
callBackFunc: () {},
isFullScreen: false,
isCloseButtonVisible: true,
);
}, onSuccess: (apiResp) async {
LoaderBottomSheet.hideLoader();
await Future.delayed(Duration(milliseconds: 50)).then((value) async {

@ -194,7 +194,7 @@ class _WaitingAppointmentPaymentPageState extends State<WaitingAppointmentPaymen
payfortViewModel.initiatePaymentWithCard(
transactionID: transID,
fileNumber: appState.getAuthenticatedUser()!.patientId.toString(),
amount: myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax!.toString(),
amount: bookAppointmentsViewModel.patientWalkInAppointmentShareResponseModel!.patientShareWithTax!.toString(),
onSucceeded: (paymentResult) async {
print("Payment Success Data: ${paymentResult.toString()}");
LoaderBottomSheet.hideLoader();
@ -338,7 +338,7 @@ class _WaitingAppointmentPaymentPageState extends State<WaitingAppointmentPaymen
payfortViewModel.initiatePaymentWithCard(
transactionID: transID,
fileNumber: appState.getAuthenticatedUser()!.patientId.toString(),
amount: myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax!.toString(),
amount: bookAppointmentsViewModel.patientWalkInAppointmentShareResponseModel!.patientShareWithTax!.toString(),
onSucceeded: (paymentResult) async {
print("Payment Success Data: ${paymentResult.toString()}");
LoaderBottomSheet.hideLoader();

@ -149,7 +149,8 @@ class _RechargeWalletPageState extends State<RechargeWalletPage> {
),
),
const Spacer(),
LocaleKeys.sar.tr(context: context).toText20(color: AppColors.greyTextColor, isBold: true),
((getIt.get<AppState>().getAuthenticatedUser()!.outSa == 1) ? LocaleKeys.aed.tr(context: context) : LocaleKeys.sar.tr(context: context))
.toText20(color: AppColors.greyTextColor, isBold: true),
],
),
],

@ -544,7 +544,7 @@ class _ServicesPageState extends State<ServicesPage> {
return Row(
children: [
Utils.buildSvgWithAssets(
icon: AppAssets.saudi_riyal_icon,
icon: (getIt.get<AppState>().getAuthenticatedUser()!.outSa == 1) ? AppAssets.uae_dirham_symbol : AppAssets.saudi_riyal_icon,
iconColor: AppColors.inputLabelTextColor,
width: 24.h,
height: 24.h,
@ -554,7 +554,7 @@ class _ServicesPageState extends State<ServicesPage> {
NumberFormat.decimalPattern()
.format(habibWalletVM.habibWalletAmount)
.toString()
.toText28(isBold: true, isEnglishOnly: true)
.toText28(isBold: true)
.toShimmer2(isShow: habibWalletVM.isWalletAmountLoading, radius: 12.h, width: 80.h, height: 40.h),
],
);

@ -28,6 +28,7 @@ import 'package:hmg_patient_app_new/features/immediate_livecare/immediate_liveca
import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/appointment_rating_view_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/patient_appointment_history_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/patient_queue_details_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/my_appointments_view_model.dart';
import 'package:hmg_patient_app_new/features/notifications/notifications_view_model.dart';
import 'package:hmg_patient_app_new/features/profile_settings/profile_settings_view_model.dart';
@ -1110,7 +1111,7 @@ class _LandingPageState extends State<LandingPage> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildQueueHeader(currentStatus),
_buildQueueHeader(currentQueue, currentStatus),
SizedBox(height: 8.h),
_buildQueueGreeting(),
SizedBox(height: 2.h),
@ -1119,11 +1120,11 @@ class _LandingPageState extends State<LandingPage> {
color: AppColors.textColorLight,
),
SizedBox(height: 8.h),
(currentQueue.queueNo ?? "IM-123").toText28(isBold: true).toShimmer2(isShow: myAppointmentsViewModel.patientQueueDetailsList.isEmpty),
(currentQueue.queueNo ?? "IM-123").toText28(isBold: true).toShimmer2(isShow: (currentQueue.queueNo == null || currentQueue.queueNo!.isEmpty)),
SizedBox(height: 6.h),
_buildServingNowSection(),
SizedBox(height: 5.h),
_buildQueueActionButton(currentStatus, currentQueue.roomNo ?? "").toShimmer2(isShow: myAppointmentsViewModel.patientQueueDetailsList.isEmpty),
_buildQueueActionButton(currentStatus, currentQueue.roomNo ?? "").toShimmer2(isShow: (currentQueue.queueNo == null || currentQueue.queueNo!.isEmpty)),
],
),
),
@ -1135,7 +1136,7 @@ class _LandingPageState extends State<LandingPage> {
}
// Queue Card: Header with status chip and icon
Widget _buildQueueHeader(int currentStatus) {
Widget _buildQueueHeader(PatientInQueueList currentQueue, int currentStatus) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
@ -1144,7 +1145,7 @@ class _LandingPageState extends State<LandingPage> {
labelText: currentStatus == 0 ? LocaleKeys.inQueue.tr() : LocaleKeys.yourTurn.tr(),
backgroundColor: Utils.getCardBorderColor(currentStatus).withValues(alpha: 0.20),
textColor: Utils.getCardBorderColor(currentStatus),
).toShimmer2(isShow: myAppointmentsViewModel.patientQueueDetailsList.isEmpty),
).toShimmer2(isShow: (currentQueue.queueNo == null || currentQueue.queueNo!.isEmpty)),
Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.greyColor,

@ -91,7 +91,7 @@ class HabibWalletCard extends StatelessWidget {
Row(
children: [
Utils.buildSvgWithAssets(
icon: AppAssets.saudi_riyal_icon,
icon: (getIt.get<AppState>().getAuthenticatedUser()!.outSa == 1) ? AppAssets.uae_dirham_symbol : AppAssets.saudi_riyal_icon,
iconColor: AppColors.inputLabelTextColor,
width: 24.h,
height: 24.h,

@ -1226,10 +1226,13 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
"${LocaleKeys.sickSubtitle.tr(context: context)} ${LocaleKeys.sick2.tr(context: context)}".toText16(isBold: true),
(!appState.isArabic()
? "${LocaleKeys.sick2.tr(context: context)} ${LocaleKeys.sickSubtitle.tr(context: context)}"
: "${LocaleKeys.sickSubtitle.tr(context: context)} ${LocaleKeys.sick2.tr(context: context)}")
.toText16(isBold: true),
Row(
children: [
LocaleKeys.viewAll.tr(context: context).toText12(color: AppColors.primaryRedColor),
LocaleKeys.viewAll.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true),
SizedBox(width: 2.h),
Icon(Icons.arrow_forward_ios, color: AppColors.primaryRedColor, size: 10.h),
],

@ -53,7 +53,9 @@ class _PatientSickleavesListPageState extends State<PatientSickleavesListPage> {
return Scaffold(
backgroundColor: AppColors.bgScaffoldColor,
body: CollapsingListView(
title: "${LocaleKeys.sickSubtitle.tr(context: context)} ${LocaleKeys.sick2.tr(context: context)}",
title: (!appState.isArabic()
? "${LocaleKeys.sick2.tr(context: context)} ${LocaleKeys.sickSubtitle.tr(context: context)}"
: "${LocaleKeys.sickSubtitle.tr(context: context)} ${LocaleKeys.sick2.tr(context: context)}"),
child: SingleChildScrollView(
child: Consumer<MedicalFileViewModel>(builder: (context, model, child) {
return Column(

@ -62,7 +62,7 @@ class MedicalReportCard extends StatelessWidget {
),
if (listReady.isNotEmpty)
AppCustomChipWidget(
labelText: '${listRequest.length.toString().padLeft(2, '0')} ${LocaleKeys.readyToDownload.tr()}',
labelText: '${listReady.length.toString().padLeft(2, '0')} ${LocaleKeys.readyToDownload.tr()}',
icon: AppAssets.sucess,
iconColor: AppColors.successColor,
textColor: AppColors.successColor,

@ -444,7 +444,7 @@ class _FamilyCardsState extends State<FamilyCards> {
// Original logic: final canSwitch = isParentUser || (!isParentUser && profile.responseId == appState.getSuperUserID);
final canSwitch = true; // Disabled - allows all users to switch
return Container(
padding: EdgeInsets.symmetric(vertical: 15.h, horizontal: 15.h),
padding: EdgeInsets.symmetric(vertical: 12.h, horizontal: 12.h),
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.r),
child: Opacity(
opacity: isActive || profile.status == FamilyFileEnum.pending.toInt || !canSwitch ? 0.4 : 1.0, // Fade all content if active
@ -454,8 +454,8 @@ class _FamilyCardsState extends State<FamilyCards> {
mainAxisSize: MainAxisSize.min,
children: [
UserAvatarWidget(
width: 72.h,
height: 70.h,
width: 70.h,
height: 66.h,
gender: profile.gender,
age: profile.age,
fit: BoxFit.cover,
@ -463,7 +463,7 @@ class _FamilyCardsState extends State<FamilyCards> {
isCircular: true,
isFamilyMember: true, // Prevent AppState fallback
),
SizedBox(height: 8.h),
SizedBox(height: 4.h),
(profile.patientName ?? "Unknown").toText14(isBold: true, isCenter: true, maxlines: 1),
// SizedBox(height: 8.h),
// CustomChipWidget(
@ -476,14 +476,17 @@ class _FamilyCardsState extends State<FamilyCards> {
// textColor: AppColors.textColor),
widget.isShowDetails ? SizedBox(height: 4.h) : SizedBox(),
widget.isShowDetails
? CustomChipWidget(
chipType: ChipTypeEnum.alert,
backgroundColor: AppColors.lightGrayBGColor,
chipText: "${LocaleKeys.age.tr(context: context)}: ${profile.age ?? "N/A"} ${LocaleKeys.years.tr(context: context)}",
isShowBorder: false,
borderRadius: 8.h,
textColor: AppColors.textColor,
)
? Wrap(direction: Axis.horizontal, spacing: 4.h, runSpacing: 4.h, children: [
AppCustomChipWidget(
icon: AppAssets.file_icon,
richText: "${LocaleKeys.fileno.tr(context: context)}: ${profile.responseId}".toText10(isBold: true),
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
),
AppCustomChipWidget(
labelText: "${LocaleKeys.age.tr(context: context)}: ${profile.age ?? "N/A"} ${LocaleKeys.years.tr(context: context)}",
labelPadding: EdgeInsetsDirectional.only(start: 4.w, end: 6.w),
),
])
: SizedBox(),
widget.isShowDetails
? SizedBox(height: 8.h)

@ -104,6 +104,8 @@ class PrescriptionDeliveryOrderSummaryPage extends StatelessWidget {
url: "https://maps.googleapis.com/maps/api/staticmap?center=${prescriptionsViewModel.locationGeocodeResponse.results.first.geometry.location.lat},${prescriptionsViewModel.locationGeocodeResponse.results.first.geometry.location.lng}&zoom=15&size=350x165&maptype=roadmap&markers=color:red%7C${prescriptionsViewModel.locationGeocodeResponse.results.first.geometry.location.lat},${prescriptionsViewModel.locationGeocodeResponse.results.first.geometry.location.lng}&key=AIzaSyB6TERnxIr0yJ3qG4ULBZbu0sAD4tGqtng",
iconColor: AppColors.blackBgColor,
fit: BoxFit.contain,
width: double.infinity,
height: 165.h,
),
),
],

@ -417,17 +417,17 @@ class _AccessibilityPageState extends State<AccessibilityPage> {
// Price with SAR symbol
Row(
children: [
"1234".toText24(
isBold: true,
color: AppColors.blackBgColor, // Always use base color
),
SizedBox(width: 4.w),
SvgPicture.asset(
AppAssets.saudi_riyal_icon,
(Utils.appState.getAuthenticatedUser()!.outSa == 1) ? AppAssets.uae_dirham_symbol : AppAssets.saudi_riyal_icon,
colorFilter: ColorFilter.mode(AppColors.blackBgColor, BlendMode.srcIn),
width: 16.w,
height: 16.h,
),
SizedBox(width: 4.h),
"1234".toText24(
isBold: true,
color: AppColors.blackBgColor, // Always use base color
),
],
),
SizedBox(height: 16.h),

Loading…
Cancel
Save