Inactive Insurance case handled

pull/188/head
haroon amjad 3 weeks ago
parent 530b87282f
commit 2be65cba51

@ -1572,5 +1572,7 @@
"noThanksIKnowTheClinic": "لا، شكراً. أنا أعرف العيادة.", "noThanksIKnowTheClinic": "لا، شكراً. أنا أعرف العيادة.",
"unableToSendOTP": "تعذر إرسال رمز التحقق لمرة واحدة", "unableToSendOTP": "تعذر إرسال رمز التحقق لمرة واحدة",
"loadingAIAnalysis": "جارٍ تحليل نتائج المختبر، يرجى التحلي بالصبر والسماح للذكاء الاصطناعي بالقيام بالمهمة، قد يستغرق هذا بعض الوقت.", "loadingAIAnalysis": "جارٍ تحليل نتائج المختبر، يرجى التحلي بالصبر والسماح للذكاء الاصطناعي بالقيام بالمهمة، قد يستغرق هذا بعض الوقت.",
"symptoms": "أعراض" "symptoms": "أعراض",
"insuranceInActive": "التأمين غير نشط",
"insuranceInActiveContactSupport": "لديك تأمين ساري المفعول، ولكنه غير مُفعّل حاليًا في مجموعة حبيب الطبية. يُرجى التواصل مع خدمة عملاء مجموعة حبيب الطبية."
} }

@ -1563,5 +1563,7 @@
"calculatedValue": "Calculated Value", "calculatedValue": "Calculated Value",
"calculationFormula": "Calculation Formula", "calculationFormula": "Calculation Formula",
"loadingAIAnalysis": "Analysing your lab results, Please be patient and let the AI do the magic, This might take some time.", "loadingAIAnalysis": "Analysing your lab results, Please be patient and let the AI do the magic, This might take some time.",
"symptoms": "Symptoms" "symptoms": "Symptoms",
"insuranceInActive": "Insurance Inactive",
"insuranceInActiveContactSupport": "You have a valid insurance but it is currently inactive in HMG. Please contact HMG customer support to activate it."
} }

@ -523,7 +523,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2; CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = 3A359E86ZF; DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@ -709,7 +709,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2; CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = 3A359E86ZF; DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@ -738,7 +738,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2; CURRENT_PROJECT_VERSION = 3;
DEVELOPMENT_TEAM = 3A359E86ZF; DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;

@ -4,7 +4,7 @@ import 'package:hmg_patient_app_new/core/enums.dart';
class ApiConsts { class ApiConsts {
static const maxSmallScreen = 660; static const maxSmallScreen = 660;
static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod; static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.uat;
// static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT // static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT

@ -408,6 +408,8 @@ class Utils {
Widget? bodyWidget, Widget? bodyWidget,
Function? onConfirmTap, Function? onConfirmTap,
Function? onCancelTap, Function? onCancelTap,
String? cancelText,
String? confirmText,
}) { }) {
return Column( return Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -425,7 +427,7 @@ class Utils {
children: [ children: [
Expanded( Expanded(
child: CustomButton( child: CustomButton(
text: LocaleKeys.cancel.tr(), text: cancelText ?? LocaleKeys.cancel.tr(),
onPressed: () { onPressed: () {
if (onCancelTap != null) { if (onCancelTap != null) {
onCancelTap(); onCancelTap();
@ -441,7 +443,7 @@ class Utils {
SizedBox(width: 8.h), SizedBox(width: 8.h),
Expanded( Expanded(
child: CustomButton( child: CustomButton(
text: LocaleKeys.confirm.tr(), text: confirmText ?? LocaleKeys.confirm.tr(),
onPressed: () async { onPressed: () async {
if (onConfirmTap != null) { if (onConfirmTap != null) {
onConfirmTap(); onConfirmTap();

@ -18,6 +18,7 @@ class InsuranceViewModel extends ChangeNotifier {
bool isInsuranceApprovalsLoading = false; bool isInsuranceApprovalsLoading = false;
bool isInsuranceExpired = false; bool isInsuranceExpired = false;
bool isInsuranceActive = false;
InsuranceRepo insuranceRepo; InsuranceRepo insuranceRepo;
ErrorHandlerService errorHandlerService; ErrorHandlerService errorHandlerService;
@ -31,11 +32,11 @@ class InsuranceViewModel extends ChangeNotifier {
InsuranceViewModel({required this.insuranceRepo, required this.errorHandlerService}); InsuranceViewModel({required this.insuranceRepo, required this.errorHandlerService});
initInsuranceProvider() { initInsuranceProvider() {
if (isInsuranceDataToBeLoaded) { // if (isInsuranceDataToBeLoaded) {
patientInsuranceList.clear(); patientInsuranceList.clear();
isInsuranceLoading = true; isInsuranceLoading = true;
getPatientInsuranceDetails(); getPatientInsuranceDetails();
} // }
patientInsuranceCardHistoryList.clear(); patientInsuranceCardHistoryList.clear();
isInsuranceHistoryLoading = true; isInsuranceHistoryLoading = true;
isInsuranceDetailsLoading = true; isInsuranceDetailsLoading = true;
@ -70,7 +71,7 @@ class InsuranceViewModel extends ChangeNotifier {
} }
Future<void> getPatientInsuranceDetails({Function(dynamic)? onSuccess, Function(String)? onError}) async { Future<void> getPatientInsuranceDetails({Function(dynamic)? onSuccess, Function(String)? onError}) async {
if (!isInsuranceDataToBeLoaded) return; // if (!isInsuranceDataToBeLoaded) return;
final result = await insuranceRepo.getPatientInsuranceDetails(); final result = await insuranceRepo.getPatientInsuranceDetails();
@ -79,6 +80,8 @@ class InsuranceViewModel extends ChangeNotifier {
(failure) async { (failure) async {
isInsuranceLoading = false; isInsuranceLoading = false;
isInsuranceDataToBeLoaded = false; isInsuranceDataToBeLoaded = false;
isInsuranceExpired = false;
isInsuranceActive = false;
notifyListeners(); notifyListeners();
}, },
(apiResponse) { (apiResponse) {
@ -94,6 +97,9 @@ class InsuranceViewModel extends ChangeNotifier {
DateUtil.convertStringToDate(patientInsuranceList.first.cardValidTo), DateUtil.convertStringToDate(patientInsuranceList.first.cardValidTo),
); );
isInsuranceActive = patientInsuranceList.first.isActive ?? false;
// isInsuranceActive = true;
notifyListeners(); notifyListeners();
if (onSuccess != null) { if (onSuccess != null) {
onSuccess(apiResponse); onSuccess(apiResponse);

@ -1564,5 +1564,7 @@ abstract class LocaleKeys {
static const unableToSendOTP = 'unableToSendOTP'; static const unableToSendOTP = 'unableToSendOTP';
static const loadingAIAnalysis = 'loadingAIAnalysis'; static const loadingAIAnalysis = 'loadingAIAnalysis';
static const symptoms = 'symptoms'; static const symptoms = 'symptoms';
static const insuranceInActive = 'insuranceInActive';
static const insuranceInActiveContactSupport = 'insuranceInActiveContactSupport';
} }

@ -5,6 +5,7 @@ import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart'; import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/core/utils/date_util.dart'; import 'package:hmg_patient_app_new/core/utils/date_util.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart'; 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/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart'; import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart';
@ -16,6 +17,7 @@ import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart';
import 'package:hmg_patient_app_new/widgets/chip/app_custom_chip_widget.dart'; import 'package:hmg_patient_app_new/widgets/chip/app_custom_chip_widget.dart';
import 'package:hmg_patient_app_new/widgets/common_bottom_sheet.dart'; import 'package:hmg_patient_app_new/widgets/common_bottom_sheet.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class PatientInsuranceCard extends StatelessWidget { class PatientInsuranceCard extends StatelessWidget {
PatientInsuranceCard({super.key, required this.insuranceCardDetailsModel, required this.isInsuranceExpired}); PatientInsuranceCard({super.key, required this.insuranceCardDetailsModel, required this.isInsuranceExpired});
@ -49,19 +51,73 @@ class PatientInsuranceCard extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox( SizedBox(
width: MediaQuery.of(context).size.width * 0.45, child: "${appState.getAuthenticatedUser()!.firstName} ${appState.getAuthenticatedUser()!.lastName}".toText18(isBold: true)), width: MediaQuery.of(context).size.width * 0.4,
child: "${appState.getAuthenticatedUser()!.firstName} ${appState.getAuthenticatedUser()!.lastName}".toText18(isBold: true, textOverflow: TextOverflow.clip)),
LocaleKeys.policyNumber.tr(namedArgs: {'number': insuranceCardDetailsModel.insurancePolicyNo ?? ''}, context: context).toText12(isBold: true, color: AppColors.lightGrayColor), LocaleKeys.policyNumber.tr(namedArgs: {'number': insuranceCardDetailsModel.insurancePolicyNo ?? ''}, context: context).toText12(isBold: true, color: AppColors.lightGrayColor),
], ],
), ),
AppCustomChipWidget( AppCustomChipWidget(
icon: isInsuranceExpired ? AppAssets.cancel_circle_icon : AppAssets.insurance_active_icon, icon: insuranceViewModel.isInsuranceExpired
labelText: isInsuranceExpired ? LocaleKeys.insuranceExpired.tr(context: context) : LocaleKeys.insuranceActive.tr(context: context), ? AppAssets.cancel_circle_icon
iconColor: isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor, : insuranceViewModel.isInsuranceActive
textColor: isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor, ? AppAssets.insurance_active_icon
iconSize: 12, : AppAssets.alertSquare,
backgroundColor: isInsuranceExpired ? AppColors.primaryRedColor.withOpacity(0.1) : AppColors.successColor.withOpacity(0.1), labelText: insuranceViewModel.isInsuranceExpired
labelPadding: EdgeInsetsDirectional.only(start: -4.h, end: 8.h), ? LocaleKeys.insuranceExpired.tr(context: context)
), : insuranceViewModel.isInsuranceActive
? LocaleKeys.insuranceActive.tr(context: context)
: LocaleKeys.insuranceInActive.tr(context: context),
iconColor: insuranceViewModel.isInsuranceExpired
? AppColors.primaryRedColor
: insuranceViewModel.isInsuranceActive
? AppColors.successColor
: AppColors.warningColorYellow,
textColor: insuranceViewModel.isInsuranceExpired
? AppColors.primaryRedColor
: insuranceViewModel.isInsuranceActive
? AppColors.successColor
: AppColors.warningColorYellow,
iconSize: 12.w,
deleteIcon: insuranceViewModel.isInsuranceActive ? null : AppAssets.forward_chevron_icon,
deleteIconColor: AppColors.warningColorYellow,
deleteIconHasColor: true,
onChipTap: () {
if (!insuranceViewModel.isInsuranceActive) {
showCommonBottomSheetWithoutHeight(
title: LocaleKeys.notice.tr(context: context),
context,
child: Utils.getWarningWidget(
loadingText: LocaleKeys.insuranceInActiveContactSupport.tr(context: context),
confirmText: LocaleKeys.contactUs.tr(context: context),
isShowActionButtons: true,
onCancelTap: () {
Navigator.pop(context);
},
onConfirmTap: () async {
launchUrl(Uri.parse("tel://" + "+966 92 006 6666"));
}),
callBackFunc: () {},
isFullScreen: false,
isCloseButtonVisible: true,
);
}
},
backgroundColor: insuranceViewModel.isInsuranceExpired
? AppColors.primaryRedColor.withOpacity(0.1)
: insuranceViewModel.isInsuranceActive
? AppColors.successColor.withOpacity(0.1)
: AppColors.warningColorYellow.withOpacity(0.1),
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: insuranceViewModel.isInsuranceActive ? 6.w : 0.w),
).toShimmer2(isShow: insuranceViewModel.isInsuranceLoading),
// AppCustomChipWidget(
// icon: isInsuranceExpired ? AppAssets.cancel_circle_icon : AppAssets.insurance_active_icon,
// labelText: isInsuranceExpired ? LocaleKeys.insuranceExpired.tr(context: context) : LocaleKeys.insuranceActive.tr(context: context),
// iconColor: isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor,
// textColor: isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor,
// iconSize: 12,
// backgroundColor: isInsuranceExpired ? AppColors.primaryRedColor.withOpacity(0.1) : AppColors.successColor.withOpacity(0.1),
// labelPadding: EdgeInsetsDirectional.only(start: -4.h, end: 8.h),
// ),
], ],
), ),
SizedBox(height: 12.h), SizedBox(height: 12.h),

@ -78,6 +78,7 @@ import 'package:hmg_patient_app_new/widgets/loader/bottomsheet_loader.dart';
import 'package:hmg_patient_app_new/widgets/routes/custom_page_route.dart'; import 'package:hmg_patient_app_new/widgets/routes/custom_page_route.dart';
import 'package:hmg_patient_app_new/widgets/shimmer/common_shimmer_widget.dart'; import 'package:hmg_patient_app_new/widgets/shimmer/common_shimmer_widget.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../features/active_prescriptions/active_prescriptions_view_model.dart'; import '../../features/active_prescriptions/active_prescriptions_view_model.dart';
import '../prescriptions/prescription_detail_page.dart'; import '../prescriptions/prescription_detail_page.dart';
@ -286,14 +287,58 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
), ),
Consumer<InsuranceViewModel>(builder: (context, insuranceVM, child) { Consumer<InsuranceViewModel>(builder: (context, insuranceVM, child) {
return AppCustomChipWidget( return AppCustomChipWidget(
icon: insuranceVM.isInsuranceExpired ? AppAssets.cancel_circle_icon : AppAssets.insurance_active_icon, icon: insuranceVM.isInsuranceExpired
labelText: insuranceVM.isInsuranceExpired ? LocaleKeys.insuranceExpired.tr(context: context) : LocaleKeys.insuranceActive.tr(context: context), ? AppAssets.cancel_circle_icon
iconColor: insuranceVM.isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor, : insuranceVM.isInsuranceActive
textColor: insuranceVM.isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor, ? AppAssets.insurance_active_icon
: AppAssets.alertSquare,
labelText: insuranceVM.isInsuranceExpired
? LocaleKeys.insuranceExpired.tr(context: context)
: insuranceVM.isInsuranceActive
? LocaleKeys.insuranceActive.tr(context: context)
: LocaleKeys.insuranceInActive.tr(context: context),
iconColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor
: insuranceVM.isInsuranceActive
? AppColors.successColor
: AppColors.warningColorYellow,
textColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor
: insuranceVM.isInsuranceActive
? AppColors.successColor
: AppColors.warningColorYellow,
iconSize: 12.w, iconSize: 12.w,
backgroundColor: insuranceVM.isInsuranceExpired ? AppColors.primaryRedColor.withOpacity(0.1) : AppColors.successColor.withOpacity(0.1), deleteIcon: insuranceVM.isInsuranceActive ? null : AppAssets.forward_chevron_icon,
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w), deleteIconColor: AppColors.warningColorYellow,
); deleteIconHasColor: true,
onChipTap: () {
if (!insuranceVM.isInsuranceActive) {
showCommonBottomSheetWithoutHeight(
title: LocaleKeys.notice.tr(context: navigationService.navigatorKey.currentContext!),
navigationService.navigatorKey.currentContext!,
child: Utils.getWarningWidget(
loadingText: LocaleKeys.insuranceInActiveContactSupport.tr(context: context),
confirmText: LocaleKeys.contactUs.tr(context: context),
isShowActionButtons: true,
onCancelTap: () {
navigationService.pop();
},
onConfirmTap: () async {
launchUrl(Uri.parse("tel://" + "+966 92 006 6666"));
}),
callBackFunc: () {},
isFullScreen: false,
isCloseButtonVisible: true,
);
}
},
backgroundColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor.withOpacity(0.1)
: insuranceVM.isInsuranceActive
? AppColors.successColor.withOpacity(0.1)
: AppColors.warningColorYellow.withOpacity(0.1),
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: insuranceVM.isInsuranceActive ? 6.w : 0.w),
).toShimmer2(isShow: insuranceVM.isInsuranceLoading);
}), }),
], ],
), ),

@ -228,8 +228,8 @@ class ProfileSettingsState extends State<ProfileSettings> {
child: Column( child: Column(
children: [ children: [
actionItem(AppAssets.call_fill, LocaleKeys.contactUs.tr(context: context), () { actionItem(AppAssets.call_fill, LocaleKeys.contactUs.tr(context: context), () {
launchUrl(Uri.parse("tel://" + "+966 11 525 9999")); launchUrl(Uri.parse("tel://" + "+966 92 006 6666"));
}, trailingLabel: "011 525 9999"), }, trailingLabel: "92 006 6666"),
1.divider, 1.divider,
actionItem(AppAssets.permission, LocaleKeys.permissions.tr(context: context), () {}, trailingLabel: "Location, Camera"), actionItem(AppAssets.permission, LocaleKeys.permissions.tr(context: context), () {}, trailingLabel: "Location, Camera"),
1.divider, 1.divider,
@ -366,61 +366,66 @@ class FamilyCardWidget extends StatelessWidget {
labelText: "Blood: ${appState.getAuthenticatedUser()!.bloodGroup ?? ""}", labelText: "Blood: ${appState.getAuthenticatedUser()!.bloodGroup ?? ""}",
iconColor: AppColors.primaryRedColor) iconColor: AppColors.primaryRedColor)
: SizedBox(), : SizedBox(),
Selector<InsuranceViewModel, ({bool isEmpty, int? patientID, bool isLoading, String? cardValidTo})>( Consumer<InsuranceViewModel>(builder: (context, insuranceVM, child) {
selector: (context, insuranceVM) => ( return AppCustomChipWidget(
isEmpty: insuranceVM.patientInsuranceList.isEmpty, icon: insuranceVM.isInsuranceExpired
patientID: insuranceVM.patientInsuranceList.isNotEmpty ? insuranceVM.patientInsuranceList.first.patientID : null, ? AppAssets.cancel_circle_icon
isLoading: insuranceVM.isInsuranceLoading, : insuranceVM.isInsuranceActive
cardValidTo: insuranceVM.patientInsuranceList.isNotEmpty ? insuranceVM.patientInsuranceList.first.cardValidTo : null ? AppAssets.insurance_active_icon
), : AppAssets.alertSquare,
builder: (context, data, child) { labelText: insuranceVM.isInsuranceExpired
if (data.isEmpty) { ? LocaleKeys.insuranceExpired.tr(context: context)
return const SizedBox(); : insuranceVM.isInsuranceActive
} else if (profile.responseId != data.patientID) { ? LocaleKeys.insuranceActive.tr(context: context)
return SizedBox(); : LocaleKeys.insuranceInActive.tr(context: context),
} iconColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor
final isLoading = data.isLoading; : insuranceVM.isInsuranceActive
final isExpired = !isLoading && DateTime.now().isAfter(DateUtil.convertStringToDate(data.cardValidTo)); ? AppColors.successColor
: AppColors.warningColorYellow,
final String icon; textColor: insuranceVM.isInsuranceExpired
final String labelText; ? AppColors.primaryRedColor
final Color iconColor; : insuranceVM.isInsuranceActive
final Color backgroundColor; ? AppColors.successColor
: AppColors.warningColorYellow,
if (isLoading) { iconSize: 12.w,
icon = AppAssets.cancel_circle_icon; deleteIcon: insuranceVM.isInsuranceActive ? null : AppAssets.forward_chevron_icon,
labelText = LocaleKeys.insurance.tr(context: context); deleteIconColor: AppColors.warningColorYellow,
iconColor = AppColors.primaryRedColor; deleteIconHasColor: true,
backgroundColor = AppColors.primaryRedColor; onChipTap: () {
} else if (isExpired) { if (!insuranceVM.isInsuranceActive) {
icon = AppAssets.cancel_circle_icon; showCommonBottomSheetWithoutHeight(
labelText = LocaleKeys.insuranceExpired.tr(context: context); title: LocaleKeys.notice.tr(context: context),
iconColor = AppColors.primaryRedColor; context,
backgroundColor = AppColors.primaryRedColor.withValues(alpha: 0.15); child: Utils.getWarningWidget(
} else { loadingText: LocaleKeys.insuranceInActiveContactSupport.tr(context: context),
icon = AppAssets.insurance_active_icon; confirmText: LocaleKeys.contactUs.tr(context: context),
labelText = LocaleKeys.insuranceActive.tr(context: context); isShowActionButtons: true,
iconColor = AppColors.successColor; onCancelTap: () {
backgroundColor = AppColors.successColor.withValues(alpha: 0.15); Navigator.pop(context);
} },
onConfirmTap: () async {
return AppCustomChipWidget( launchUrl(Uri.parse("tel://" + "+966 92 006 6666"));
icon: icon, }),
labelText: labelText, callBackFunc: () {},
iconColor: iconColor, isFullScreen: false,
iconSize: 12.w, isCloseButtonVisible: true,
backgroundColor: backgroundColor, );
labelPadding: EdgeInsetsDirectional.only(start: -6.w, end: 8.w), }
// padding: EdgeInsets.zero, },
).toShimmer2(isShow: isLoading); backgroundColor: insuranceVM.isInsuranceExpired
}, ? AppColors.primaryRedColor.withOpacity(0.1)
) : insuranceVM.isInsuranceActive
? AppColors.successColor.withOpacity(0.1)
: AppColors.warningColorYellow.withOpacity(0.1),
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: insuranceVM.isInsuranceActive ? 6.w : 0.w),
).toShimmer2(isShow: insuranceVM.isInsuranceLoading);
}),
], ],
), ),
), ),
], ],
).paddingOnly(top: 16.h, right: 16.w, left: 16.w, bottom: 0.h), ).paddingOnly(top: 16.h, right: 16.w, left: 16.w, bottom: 8.h),
1.divider.paddingSymmetrical(16.w, 0.h), 1.divider.paddingSymmetrical(16.w, 0.h),
_buildActionButton(appState), _buildActionButton(appState),
], ],

Loading…
Cancel
Save