@ -228,8 +228,8 @@ class ProfileSettingsState extends State<ProfileSettings> {
child: Column (
children: [
actionItem ( AppAssets . call_fill , LocaleKeys . contactUs . tr ( context: context ) , ( ) {
launchUrl ( Uri . parse ( " tel:// " + " +966 11 525 9999 " ) ) ;
} , trailingLabel: " 011 525 9999 " ) ,
launchUrl ( Uri . parse ( " tel:// " + " +966 92 006 6666 " ) ) ;
} , trailingLabel: " 92 006 6666 " ) ,
1. divider ,
actionItem ( AppAssets . permission , LocaleKeys . permissions . tr ( context: context ) , ( ) { } , trailingLabel: " Location, Camera " ) ,
1. divider ,
@ -366,61 +366,66 @@ class FamilyCardWidget extends StatelessWidget {
labelText: " Blood: ${ appState . getAuthenticatedUser ( ) ! . bloodGroup ? ? " " } " ,
iconColor: AppColors . primaryRedColor )
: SizedBox ( ) ,
Selector < InsuranceViewModel , ( { bool isEmpty , int ? patientID , bool isLoading , String ? cardValidTo } ) > (
selector: ( context , insuranceVM ) = > (
isEmpty: insuranceVM . patientInsuranceList . isEmpty ,
patientID: insuranceVM . patientInsuranceList . isNotEmpty ? insuranceVM . patientInsuranceList . first . patientID : null ,
isLoading: insuranceVM . isInsuranceLoading ,
cardValidTo: insuranceVM . patientInsuranceList . isNotEmpty ? insuranceVM . patientInsuranceList . first . cardValidTo : null
) ,
builder: ( context , data , child ) {
if ( data . isEmpty ) {
return const SizedBox ( ) ;
} else if ( profile . responseId ! = data . patientID ) {
return SizedBox ( ) ;
}
final isLoading = data . isLoading ;
final isExpired = ! isLoading & & DateTime . now ( ) . isAfter ( DateUtil . convertStringToDate ( data . cardValidTo ) ) ;
final String icon ;
final String labelText ;
final Color iconColor ;
final Color backgroundColor ;
if ( isLoading ) {
icon = AppAssets . cancel_circle_icon ;
labelText = LocaleKeys . insurance . tr ( context: context ) ;
iconColor = AppColors . primaryRedColor ;
backgroundColor = AppColors . primaryRedColor ;
} else if ( isExpired ) {
icon = AppAssets . cancel_circle_icon ;
labelText = LocaleKeys . insuranceExpired . tr ( context: context ) ;
iconColor = AppColors . primaryRedColor ;
backgroundColor = AppColors . primaryRedColor . withValues ( alpha: 0.15 ) ;
} else {
icon = AppAssets . insurance_active_icon ;
labelText = LocaleKeys . insuranceActive . tr ( context: context ) ;
iconColor = AppColors . successColor ;
backgroundColor = AppColors . successColor . withValues ( alpha: 0.15 ) ;
}
return AppCustomChipWidget (
icon: icon ,
labelText: labelText ,
iconColor: iconColor ,
iconSize: 12. w ,
backgroundColor: backgroundColor ,
labelPadding: EdgeInsetsDirectional . only ( start: - 6. w , end: 8. w ) ,
/ / padding: EdgeInsets . zero ,
) . toShimmer2 ( isShow: isLoading ) ;
} ,
)
Consumer < InsuranceViewModel > ( builder: ( context , insuranceVM , child ) {
return AppCustomChipWidget (
icon: insuranceVM . isInsuranceExpired
? AppAssets . cancel_circle_icon
: insuranceVM . isInsuranceActive
? 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 ,
deleteIcon: insuranceVM . isInsuranceActive ? null : AppAssets . forward_chevron_icon ,
deleteIconColor: AppColors . warningColorYellow ,
deleteIconHasColor: true ,
onChipTap: ( ) {
if ( ! insuranceVM . 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: 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 ) ,
_buildActionButton ( appState ) ,
] ,