import  ' package:easy_localization/easy_localization.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:flutter/material.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/app_assets.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/app_state.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/common_models/nationality_country_model.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/dependencies.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/enums.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/utils/size_utils.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/core/utils/validation_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/authentication/authentication_view_model.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/generated/locale_keys.g.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/theme/colors.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/appbar/app_bar_widget.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/bottomsheet/generic_bottom_sheet.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/buttons/custom_button.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/dropdown/dropdown_widget.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ' package:hmg_patient_app_new/widgets/input_widget.dart ' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  ' package:provider/provider.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  RegisterNewStep2  extends  StatefulWidget  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  RegisterNewStep2 ( { Key ?  key } )  :  super ( key:  key ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  _RegisterNew  createState ( )  = >  _RegisterNew ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  _RegisterNew  extends  State < RegisterNewStep2 >  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  AuthenticationViewModel ?  authVM ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  initState ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    super . initState ( ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    authVM  =  context . read < AuthenticationViewModel > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    super . dispose ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Widget  build ( BuildContext  context )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    AppState  appState  =  getIt . get < AppState > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Scaffold ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      appBar:  CustomAppBar ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        onBackPressed:  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Navigator . of ( context ) . pop ( ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								          // authVM!.clearDefaultInputValues();
 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        onLanguageChanged:  ( lang )  { } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        hideLogoAndLang:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      body:  SingleChildScrollView ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        reverse:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        padding:  EdgeInsets . only ( left:  24. h ,  right:  24. h ,  top:  24. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          crossAxisAlignment:  CrossAxisAlignment . start , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          children:  < Widget > [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Directionality ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              textDirection:  Directionality . of ( context ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              child:  Container ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                decoration:  BoxDecoration ( color:  Colors . white ,  borderRadius:  BorderRadius . circular ( 24 ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                padding:  EdgeInsets . only ( left:  16. h ,  right:  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    TextInputWidget ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            labelText:  authVM ! . isUserFromUAE ( )  ?  LocaleKeys . fullName . tr ( )  :  LocaleKeys . name . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            hintText:  authVM ! . isUserFromUAE ( )  ?  " Enter your full name "  :  ( " ${ appState . getNHICUserData . firstNameEn ! . toUpperCase ( ) }   ${ appState . getNHICUserData . lastNameEn ! . toUpperCase ( ) } " ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            controller:  authVM ! . isUserFromUAE ( )  ?  authVM ! . nameController  :  null , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            prefix:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            keyboardType:  TextInputType . text , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isAllowLeadingIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            isReadOnly:  authVM ! . isUserFromUAE ( )  ?  false  :  true , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            leadingIcon:  AppAssets . user_circle ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . paddingSymmetrical ( 0. h ,  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    Divider ( height:  1 ,  color:  AppColors . greyColor ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    TextInputWidget ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            labelText:  LocaleKeys . nationalIdNumber . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            hintText:  authVM ! . isUserFromUAE ( )  ?  appState . getUserRegistrationPayload . patientIdentificationId . toString ( )  :  ( appState . getNHICUserData . idNumber  ? ?  " " ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            controller:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            prefix:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isAllowLeadingIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isReadOnly:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            leadingIcon:  AppAssets . student_card ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        . paddingSymmetrical ( 0. h ,  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    Divider ( height:  1 ,  color:  AppColors . greyColor ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    authVM ! . isUserFromUAE ( ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        ?  Selector < AuthenticationViewModel ,  GenderTypeEnum ? > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            selector:  ( _ ,  authViewModel )  = >  authViewModel . genderType , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            shouldRebuild:  ( previous ,  next )  = >  previous  ! =  next , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            builder:  ( context ,  genderType ,  child )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              final  authVM  =  context . read < AuthenticationViewModel > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              return  DropdownWidget ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                labelText:  LocaleKeys . gender . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                hintText:  LocaleKeys . malE . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                dropdownItems:  GenderTypeEnum . values . map ( ( e )  = >  appState . isArabic ( )  ?  e . typeAr  :  e . type ) . toList ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                selectedValue:  genderType  ! =  null  ?  ( appState . isArabic ( )  ?  genderType . typeAr  :  genderType . type )  :  " " , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                onChange:  authVM . onGenderChange , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                hasSelectionCustomIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                padding:  const  EdgeInsets . only ( top:  8 ,  bottom:  8 ,  left:  0 ,  right:  0 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                selectionCustomIcon:  AppAssets . arrow_down , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                leadingIcon:  AppAssets . user_full , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) . withVerticalPadding ( 8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        :  TextInputWidget ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                labelText:  LocaleKeys . gender . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                hintText:  ( appState . getNHICUserData . gender  ? ?  " " ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                controller:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                prefix:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowLeadingIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                isReadOnly:  authVM ! . isUserFromUAE ( )  ?  false  :  true , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                leadingIcon:  AppAssets . user_full , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                onChange:  ( value )  { } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            . paddingSymmetrical ( 0. h ,  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    Divider ( height:  1 ,  color:  AppColors . greyColor ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    authVM ! . isUserFromUAE ( ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        ?  Selector < AuthenticationViewModel ,  MaritalStatusTypeEnum ? > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            selector:  ( _ ,  authViewModel )  = >  authViewModel . maritalStatus , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            shouldRebuild:  ( previous ,  next )  = >  previous  ! =  next , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            builder:  ( context ,  maritalStatus ,  child )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              final  authVM  =  context . read < AuthenticationViewModel > ( ) ;  // For onChange
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              return  DropdownWidget ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                labelText:  LocaleKeys . maritalStatus . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                hintText:  LocaleKeys . married . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                dropdownItems:  MaritalStatusTypeEnum . values . map ( ( e )  = >  appState . isArabic ( )  ?  e . typeAr  :  e . type ) . toList ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                selectedValue:  maritalStatus  ! =  null  ?  ( appState . isArabic ( )  ?  maritalStatus . typeAr  :  maritalStatus . type )  :  " " , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                onChange:  authVM . onMaritalStatusChange , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                hasSelectionCustomIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                padding:  const  EdgeInsets . only ( top:  8 ,  bottom:  8 ,  left:  0 ,  right:  0 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                selectionCustomIcon:  AppAssets . arrow_down , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                leadingIcon:  AppAssets . smart_phone , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) . withVerticalPadding ( 8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        :  TextInputWidget ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                labelText:  LocaleKeys . maritalStatus . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                hintText:  appState . isArabic ( ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                    ?  ( MaritalStatusTypeExtension . fromValue ( appState . getNHICUserData . maritalStatusCode ) ! . typeAr ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    :  ( MaritalStatusTypeExtension . fromValue ( appState . getNHICUserData . maritalStatusCode ) ! . type ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                prefix:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowLeadingIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isReadOnly:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                leadingIcon:  AppAssets . smart_phone , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                onChange:  ( value )  { } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            . paddingSymmetrical ( 0. h ,  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    Divider ( height:  1 ,  color:  AppColors . greyColor ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    authVM ! . isUserFromUAE ( ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        ?  Selector < AuthenticationViewModel ,  ( { List < NationalityCountries > ?  countriesList ,  NationalityCountries ?  selectedCountry ,  bool  isArabic } ) > ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            selector:  ( context ,  authViewModel )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              final  appState  =  getIt . get < AppState > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              return  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                countriesList:  authViewModel . countriesList , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                selectedCountry:  authViewModel . pickedCountryByUAEUser , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isArabic:  appState . isArabic ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            shouldRebuild:  ( previous ,  next )  = >  previous . countriesList  ! =  next . countriesList  | |  previous . selectedCountry  ! =  next . selectedCountry  | |  previous . isArabic  ! =  next . isArabic , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            builder:  ( context ,  data ,  child )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              final  authVM  =  context . read < AuthenticationViewModel > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              return  DropdownWidget ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                labelText:  LocaleKeys . country . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                hintText:  LocaleKeys . uae . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                dropdownItems:  ( data . countriesList  ? ?  [ ] ) . map ( ( e )  = >  data . isArabic  ?  e . nameN  ? ?  " "  :  e . name  ? ?  " " ) . toList ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                selectedValue:  data . selectedCountry  ! =  null 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    ?  data . isArabic 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        ?  data . selectedCountry ! . nameN  ? ?  " " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        :  data . selectedCountry ! . name  ? ?  " " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    :  " " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                onChange:  authVM . onUAEUserCountrySelection , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                hasSelectionCustomIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                padding:  const  EdgeInsets . only ( top:  8 ,  bottom:  8 ,  left:  0 ,  right:  0 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                selectionCustomIcon:  AppAssets . arrow_down , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                leadingIcon:  AppAssets . globe , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ) . withVerticalPadding ( 8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        :  TextInputWidget ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                labelText:  LocaleKeys . nationality . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                hintText:  appState . isArabic ( ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                    ?  ( authVM ! . countriesList ! . firstWhere ( ( e )  = >  e . id  = =  ( appState . getNHICUserData . nationalityCode  ? ?  " " ) ,  orElse:  ( )  = >  NationalityCountries ( ) ) . nameN  ? ?  " " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    :  ( authVM ! . countriesList ! . firstWhere ( ( e )  = >  e . id  = =  ( appState . getNHICUserData . nationalityCode  ? ?  " " ) ,  orElse:  ( )  = >  NationalityCountries ( ) ) . name  ? ?  " " ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                isEnable:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                prefix:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isAllowLeadingIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                isReadOnly:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                leadingIcon:  AppAssets . globe , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                onChange:  ( value )  { } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            . paddingSymmetrical ( 0. h ,  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Divider ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      height:  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      color:  AppColors . greyColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    TextInputWidget ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            labelText:  LocaleKeys . mobileNumber . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            hintText:  ( appState . getUserRegistrationPayload . patientMobileNumber . toString ( )  ? ?  " " ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            controller:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isEnable:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            prefix:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isAllowRadius:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isAllowLeadingIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            isReadOnly:  true , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            leadingIcon:  AppAssets . call ) 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        . paddingSymmetrical ( 0. h ,  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Divider ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      height:  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      color:  AppColors . greyColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    TextInputWidget ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      labelText:  LocaleKeys . dob . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      hintText:  authVM ! . isUserFromUAE ( )  ?  appState . getUserRegistrationPayload . dob !  :  appState . getNHICUserData . dateOfBirth  ? ?  " " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      controller:  authVM ! . isUserFromUAE ( )  ?  authVM ! . dobController  :  null , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      isEnable:  false , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      prefix:  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      isBorderAllowed:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      isAllowLeadingIcon:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      isReadOnly:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      leadingIcon:  AppAssets . birthday_cake , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      selectionType:  null , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    ) . paddingSymmetrical ( 0. h ,  16. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            SizedBox ( height:  50. h ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Row ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Expanded ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  child:  CustomButton ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    text:  LocaleKeys . cancel . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    icon:  AppAssets . cancel , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    onPressed:  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      Navigator . of ( context ) . pop ( ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      // authVM!.clearDefaultInputValues();
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    backgroundColor:  AppColors . secondaryLightRedColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    borderColor:  AppColors . secondaryLightRedColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    textColor:  AppColors . primaryRedColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    iconColor:  AppColors . primaryRedColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                SizedBox ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  width:  16 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Expanded ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  child:  CustomButton ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    backgroundColor:  AppColors . lightGreenColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    borderColor:  AppColors . lightGreenColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    textColor:  AppColors . textGreenColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    text:  LocaleKeys . confirm . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    icon:  AppAssets . confirm , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    iconColor:  AppColors . textGreenColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    onPressed:  ( )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      if  ( appState . getUserRegistrationPayload . zipCode  ! =  CountryEnum . saudiArabia . countryCode )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        if  ( ValidationUtils . validateUaeRegistration ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            name:  authVM ! . nameController . text , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            gender:  authVM ! . genderType , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            country:  authVM ! . pickedCountryByUAEUser , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            maritalStatus:  authVM ! . maritalStatus , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            onOkPress:  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              Navigator . of ( context ) . pop ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            } ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          showModel ( context:  context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        showModel ( context:  context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      // if (isFromDubai) {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   if (name == null) {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     AppToast.showErrorToast(message: LocaleKeys.enterFullName);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     return;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   if (!name!.contains(" ")) if (selectedGenderType == null) {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     AppToast.showErrorToast(message: TranslationBase.of(context).enterFullName);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     return;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   if (selectedMaritalStatusType == null) {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     AppToast.showErrorToast(message: TranslationBase.of(context).chooseMaritalStatus);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     return;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   if (selectedCountry == null) {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     AppToast.showErrorToast(message: TranslationBase.of(context).chooseCountry);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //     return;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      //   }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      // }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  showModel ( { required  BuildContext  context } )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    showModalBottomSheet ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      context:  context , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      isScrollControlled:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      isDismissible:  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      backgroundColor:  Colors . transparent , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      builder:  ( bottomSheetContext )  = >  Padding ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        padding:  EdgeInsets . only ( bottom:  MediaQuery . of ( bottomSheetContext ) . viewInsets . bottom ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        child:  SingleChildScrollView ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          child:  GenericBottomSheet ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								            textController:  authVM ! . emailController , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            isForEmail:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            buttons:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              Padding ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                padding:  const  EdgeInsets . only ( bottom:  10 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                child:  CustomButton ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    text:  LocaleKeys . submit , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    onPressed:  ( )  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      if  ( ValidationUtils . isValidateEmail ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          email:  authVM ! . emailController . text , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          onOkPress:  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            Navigator . of ( context ) . pop ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          } ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        authVM ! . onRegistrationComplete ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    backgroundColor:  AppColors . bgGreenColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    borderColor:  AppColors . bgGreenColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    textColor:  AppColors . whiteColor ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}