import  ' package:easy_localization/easy_localization.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:flutter/material.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:flutter_swiper_view/flutter_swiper_view.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/app_assets.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/app_export.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/app_state.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/utils/date_util.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/utils/utils.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/extensions/int_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/features/habib_wallet/habib_wallet_view_model.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/features/insurance/insurance_view_model.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/features/profile_settings/profile_settings_view_model.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/generated/locale_keys.g.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/presentation/habib_wallet/habib_wallet_page.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/presentation/habib_wallet/recharge_wallet_page.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/appbar/collapsing_list_view.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/theme/colors.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/app_language_change.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								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/common_bottom_sheet.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/routes/custom_page_route.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/transitions/fade_page.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:provider/provider.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' ../../core/dependencies.dart '  show  getIt ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ProfileSettings  extends  StatefulWidget  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ProfileSettings ( { Key ?  key } )  :  super ( key:  key ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  _ProfileSettingsState  createState ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  _ProfileSettingsState ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  _ProfileSettingsState  extends  State < ProfileSettings >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  initState ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    super . initState ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    super . dispose ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int  length  =  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  final  SwiperController  _controller  =  SwiperController ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int  _index  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Widget  build ( BuildContext  context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  CollapsingListView ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      title:  " Profile & Settings " . needTranslation , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      logout:  ( )  { } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      isClose:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      child:  SingleChildScrollView ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        padding:  EdgeInsets . only ( top:  24 ,  bottom:  24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        physics:  NeverScrollableScrollPhysics ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        child:  Consumer < ProfileSettingsViewModel > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          builder:  ( context ,  model ,  child )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              crossAxisAlignment:  CrossAxisAlignment . start , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Swiper ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  itemCount:  length , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  layout:  SwiperLayout . STACK , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  loop:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  itemWidth:  MediaQuery . of ( context ) . size . width  -  42 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  indicatorLayout:  PageIndicatorLayout . COLOR , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  axisDirection:  AxisDirection . right , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  controller:  _controller , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  itemHeight:  210  +  16 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  pagination:  const  SwiperPagination ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    alignment:  Alignment . bottomCenter , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    margin:  EdgeInsets . only ( top:  210  +  8  +  24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    builder:  DotSwiperPaginationBuilder ( color:  Color ( 0xffD9D9D9 ) ,  activeColor:  AppColors . blackBgColor ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  itemBuilder:  ( BuildContext  context ,  int  index )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    return  FamilyCardWidget ( isRootUser:  true ) . paddingOnly ( right:  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                GridView ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  gridDelegate:  const  SliverGridDelegateWithFixedCrossAxisCount ( crossAxisCount:  2 ,  crossAxisSpacing:  9 ,  mainAxisSpacing:  9 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  physics:  const  NeverScrollableScrollPhysics ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  padding:  const  EdgeInsets . all ( 24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  shrinkWrap:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Container ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      padding:  EdgeInsets . all ( 16 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      decoration:  RoundedRectangleBorder ( ) . toSmoothCornerDecoration ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        color:  AppColors . whiteColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        borderRadius:  20. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        hasShadow:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        crossAxisAlignment:  CrossAxisAlignment . start , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        spacing:  4. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          Row ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            spacing:  8. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            crossAxisAlignment:  CrossAxisAlignment . center , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              Utils . buildSvgWithAssets ( icon:  AppAssets . wallet ,  width:  40. h ,  height:  40. h ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              " Habib Wallet " . needTranslation . toText14 ( weight:  FontWeight . w600 ,  maxlines:  2 ) . expanded , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              Utils . buildSvgWithAssets ( icon:  AppAssets . arrow_forward ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ] , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                          ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          Spacer ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                          Consumer < HabibWalletViewModel > ( builder:  ( context ,  habibWalletVM ,  child )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            return  Utils . getPaymentAmountWithSymbol2 ( habibWalletVM . habibWalletAmount ,  isExpanded:  false ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                . toShimmer2 ( isShow:  habibWalletVM . isWalletAmountLoading ,  radius:  12. h ,  width:  80. h ,  height:  24. h ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          } ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                          CustomButton ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            height:  40. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            icon:  AppAssets . recharge_icon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            iconSize:  24. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            iconColor:  AppColors . infoColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            textColor:  AppColors . infoColor , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            text:  " Recharge " . needTranslation , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            borderWidth:  0. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            fontWeight:  FontWeight . w500 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            borderColor:  Colors . transparent , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            backgroundColor:  Color ( 0xff45A2F8 ) . withValues ( alpha:  0.08 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            padding:  EdgeInsets . all ( 8. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            fontSize:  14 , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            onPressed:  ( )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              Navigator . of ( context ) . push ( CustomPageRoute ( page:  RechargeWalletPage ( ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            } , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                          ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      ) . onPress ( ( )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        Navigator . of ( context ) . push ( CustomPageRoute ( page:  HabibWalletPage ( ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ] , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                " Quick Actions " . needTranslation . toText18 ( weight:  FontWeight . w600 ,  textOverflow:  TextOverflow . ellipsis ,  maxlines:  1 ) . paddingOnly ( left:  24 ,  right:  24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Container ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  margin:  EdgeInsets . only ( left:  24 ,  right:  24 ,  top:  16 ,  bottom:  24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  padding:  EdgeInsets . only ( top:  4 ,  bottom:  4 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  decoration:  RoundedRectangleBorder ( ) . toSmoothCornerDecoration ( color:  AppColors . whiteColor ,  borderRadius:  24. h ,  hasShadow:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    children:  [ 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . language_change ,  " Language " . needTranslation ,  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        showCommonBottomSheetWithoutHeight ( context ,  title:  " Application Language " . needTranslation ,  child:  AppLanguageChange ( ) ,  callBackFunc:  ( )  { } ,  isFullScreen:  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      } ,  trailingLabel:  Utils . appState . isArabic ( )  ?  " العربية " . needTranslation  :  " English " . needTranslation ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . accessibility ,  " Accessibility " . needTranslation ,  ( )  { } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . bell ,  " Notifications Settings " . needTranslation ,  ( )  { } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . touch_face_id ,  " Touch ID / Face ID Services " . needTranslation ,  ( )  { } ,  switchValue:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                " Personal Information " . needTranslation . toText18 ( weight:  FontWeight . w600 ,  textOverflow:  TextOverflow . ellipsis ,  maxlines:  1 ) . paddingOnly ( left:  24 ,  right:  24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Container ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  margin:  EdgeInsets . only ( left:  24 ,  right:  24 ,  top:  16 ,  bottom:  24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  padding:  EdgeInsets . only ( top:  4 ,  bottom:  4 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  decoration:  RoundedRectangleBorder ( ) . toSmoothCornerDecoration ( color:  AppColors . whiteColor ,  borderRadius:  24. h ,  hasShadow:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . email_transparent ,  " Update Email Address " . needTranslation ,  ( )  { } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . smart_phone_fill ,  " Phone Number " . needTranslation ,  ( )  { } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . my_address ,  " My Addresses " . needTranslation ,  ( )  { } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . emergency ,  " Emergency Contact " . needTranslation ,  ( )  { } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                " Help & Support " . needTranslation . toText18 ( weight:  FontWeight . w600 ,  textOverflow:  TextOverflow . ellipsis ,  maxlines:  1 ) . paddingOnly ( left:  24 ,  right:  24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Container ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  margin:  EdgeInsets . only ( left:  24 ,  right:  24 ,  top:  16 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  padding:  EdgeInsets . only ( top:  4 ,  bottom:  4 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  decoration:  RoundedRectangleBorder ( ) . toSmoothCornerDecoration ( color:  AppColors . whiteColor ,  borderRadius:  24. h ,  hasShadow:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . call_fill ,  " Contact Us " . needTranslation ,  ( )  { } ,  trailingLabel:  " 9200666666 " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . permission ,  " Permissions " . needTranslation ,  ( )  { } ,  trailingLabel:  " Location, Camera " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . rate ,  " Rate Our App " . needTranslation ,  ( )  { } ,  isExternalLink:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . privacy_terms ,  " Privacy Policy " . needTranslation ,  ( )  { } ,  isExternalLink:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      1. divider , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      actionItem ( AppAssets . privacy_terms ,  " Terms & Conditions " . needTranslation ,  ( )  { } ,  isExternalLink:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                CustomButton ( icon:  AppAssets . minus ,  text:  " Deactivate account " . needTranslation ,  onPressed:  ( )  { } ) . paddingAll ( 24 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Widget  actionItem ( String  icon ,  String  label ,  VoidCallback  onPress ,  { String  trailingLabel  =  " " ,  bool ?  switchValue ,  bool  isExternalLink  =  false } )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  SizedBox ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      height:  56 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      child:  Row ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        spacing:  8. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Utils . buildSvgWithAssets ( icon:  icon ,  iconColor:  AppColors . greyTextColor ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          label . toText14 ( weight:  FontWeight . w500 ,  textOverflow:  TextOverflow . ellipsis ,  maxlines:  1 ) . expanded , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( trailingLabel . isNotEmpty )  trailingLabel . toText14 ( color:  AppColors . greyTextColor ,  weight:  FontWeight . w500 ,  textOverflow:  TextOverflow . ellipsis ,  maxlines:  1 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          switchValue  ! =  null 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ?  Switch ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  value:  switchValue , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  onChanged:  ( value )  { } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  activeColor:  AppColors . successColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  activeTrackColor:  AppColors . successColor . withValues ( alpha:  . 15 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								              :  Transform . scale ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  scaleX:  Utils . appState . isArabic ( )  ?  - 1  :  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  child:  Utils . buildSvgWithAssets ( icon:  isExternalLink  ?  AppAssets . externalLink  :  AppAssets . arrow_forward ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) . paddingOnly ( left:  16 ,  right:  16 ) . onPress ( onPress ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  FamilyCardWidget  extends  StatelessWidget  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  FamilyCardWidget ( { this . isRootUser  =  true ,  Key ?  key } )  :  super ( key:  key ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  isRootUser ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  late  AppState  appState ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Widget  build ( BuildContext  context )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    appState  =  getIt . get < AppState > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Container ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      decoration:  RoundedRectangleBorder ( ) . toSmoothCornerDecoration ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        color:  AppColors . whiteColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        borderRadius:  20. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        hasShadow:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            spacing:  8. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              Row ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                crossAxisAlignment:  CrossAxisAlignment . start , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                spacing:  8. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                children:  [ 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  Image . asset ( appState . getAuthenticatedUser ( ) ? . gender  = =  1  ?  AppAssets . male_img  :  AppAssets . femaleImg ,  width:  56. h ,  height:  56. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    crossAxisAlignment:  CrossAxisAlignment . start , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    spacing:  0. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    mainAxisSize:  MainAxisSize . min , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    children:  [ 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      " ${ appState . getAuthenticatedUser ( ) ! . firstName }   ${ appState . getAuthenticatedUser ( ) ! . lastName } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          . toText18 ( isBold:  true ,  weight:  FontWeight . w600 ,  textOverflow:  TextOverflow . ellipsis ,  maxlines:  1 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      AppCustomChipWidget ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        icon:  AppAssets . file_icon , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        labelText:  " ${ LocaleKeys . fileNo . tr ( context:  context ) } :  ${ appState . getAuthenticatedUser ( ) ! . patientId } " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        iconSize:  12 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) . expanded , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  Icon ( Icons . qr_code ,  size:  56 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ) . expanded , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              SizedBox ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                width:  double . infinity , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                child:  Wrap ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  alignment:  WrapAlignment . start , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  spacing:  8. h , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  children:  [ 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    AppCustomChipWidget ( labelText:  " ${ appState . getAuthenticatedUser ( ) ! . age }  Years Old " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    AppCustomChipWidget ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      icon:  AppAssets . blood_icon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      labelText:  " ${ LocaleKeys . bloodType . tr ( context:  context ) } :  ${ appState . getUserBloodGroup } " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      iconColor:  AppColors . primaryRedColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    Consumer < InsuranceViewModel > ( builder:  ( context ,  insuranceVM ,  child )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      return  AppCustomChipWidget ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        icon:  insuranceVM . isInsuranceLoading 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ?  AppAssets . cancel_circle_icon 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :  ( DateTime . now ( ) . isAfter ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                DateUtil . convertStringToDate ( insuranceVM . patientInsuranceList . first . cardValidTo ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ?  AppAssets . cancel_circle_icon 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                :  AppAssets . insurance_active_icon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        labelText:  insuranceVM . isInsuranceLoading 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ?  " Insurance " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :  ( DateTime . now ( ) . isAfter ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                DateUtil . convertStringToDate ( insuranceVM . patientInsuranceList . first . cardValidTo ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ?  " Insurance Expired " . needTranslation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                :  " Insurance Active " . needTranslation ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        iconColor:  insuranceVM . isInsuranceLoading 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ?  AppColors . primaryRedColor 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :  ( DateTime . now ( ) . isAfter ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                DateUtil . convertStringToDate ( insuranceVM . patientInsuranceList . first . cardValidTo ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ?  AppColors . primaryRedColor 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                :  AppColors . successColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        iconSize:  14 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        backgroundColor:  insuranceVM . isInsuranceLoading 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ?  AppColors . primaryRedColor 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :  ( DateTime . now ( ) . isAfter ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                DateUtil . convertStringToDate ( insuranceVM . patientInsuranceList . first . cardValidTo ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ?  AppColors . primaryRedColor . withValues ( alpha:  0.15 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                :  AppColors . successColor . withValues ( alpha:  0.15 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      ) . toShimmer2 ( isShow:  insuranceVM . isInsuranceLoading ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ) . paddingOnly ( top:  16 ,  right:  16 ,  left:  16 ,  bottom:  12 ) . expanded , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								          1. divider , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								          CustomButton ( icon:  AppAssets . add_family ,  text:  " Add a new family member " . needTranslation ,  height:  40. h ,  fontSize:  14 ,  onPressed:  ( )  { } ) . paddingOnly ( top:  12 ,  right:  16 ,  left:  16 ,  bottom:  16 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}