@ -9,6 +9,7 @@ import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
 
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/core/utils/utils.dart ' ; import  ' package:hmg_patient_app_new/core/utils/utils.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/extensions/string_extensions.dart ' ; import  ' package:hmg_patient_app_new/extensions/string_extensions.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/extensions/widget_extensions.dart ' ; import  ' package:hmg_patient_app_new/extensions/widget_extensions.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/features/authentication/authentication_view_model.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/features/book_appointments/book_appointments_view_model.dart ' ; import  ' package:hmg_patient_app_new/features/book_appointments/book_appointments_view_model.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/features/immediate_livecare/immediate_livecare_view_model.dart ' ; import  ' package:hmg_patient_app_new/features/immediate_livecare/immediate_livecare_view_model.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/features/my_appointments/appointment_via_region_viewmodel.dart ' ; import  ' package:hmg_patient_app_new/features/my_appointments/appointment_via_region_viewmodel.dart ' ;  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -22,6 +23,7 @@ import 'package:hmg_patient_app_new/presentation/book_appointment/search_doctor_
 
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/presentation/book_appointment/select_clinic_page.dart ' ; import  ' package:hmg_patient_app_new/presentation/book_appointment/select_clinic_page.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/widgets/appbar/collapsing_list_view.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/theme/colors.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/widgets/buttons/custom_button.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/widgets/common_bottom_sheet.dart '  show  showCommonBottomSheetWithoutHeight ; import  ' package:hmg_patient_app_new/widgets/common_bottom_sheet.dart '  show  showCommonBottomSheetWithoutHeight ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/widgets/custom_tab_bar.dart ' ; import  ' package:hmg_patient_app_new/widgets/custom_tab_bar.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:hmg_patient_app_new/widgets/loader/bottomsheet_loader.dart ' ; import  ' package:hmg_patient_app_new/widgets/loader/bottomsheet_loader.dart ' ;  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -43,9 +45,11 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
 
			
		
	
		
		
			
				
					
					  late  AppointmentViaRegionViewmodel  regionalViewModel ; 
  late  AppointmentViaRegionViewmodel  regionalViewModel ; 
 
			
		
	
		
		
			
				
					
					  late  BookAppointmentsViewModel  bookAppointmentsViewModel ; 
  late  BookAppointmentsViewModel  bookAppointmentsViewModel ; 
 
			
		
	
		
		
			
				
					
					  late  ImmediateLiveCareViewModel  immediateLiveCareViewModel ; 
  late  ImmediateLiveCareViewModel  immediateLiveCareViewModel ; 
 
			
		
	
		
		
			
				
					
					  late  final  AuthenticationViewModel  authVM ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  @ override 
  @ override 
 
			
		
	
		
		
			
				
					
					  void  initState ( )  { 
  void  initState ( )  { 
 
			
		
	
		
		
			
				
					
					    authVM  =  context . read < AuthenticationViewModel > ( ) ; 
 
			
		
	
		
		
			
				
					
					    scheduleMicrotask ( ( )  { 
    scheduleMicrotask ( ( )  { 
 
			
		
	
		
		
			
				
					
					      bookAppointmentsViewModel . selectedTabIndex  =  0 ; 
      bookAppointmentsViewModel . selectedTabIndex  =  0 ; 
 
			
		
	
		
		
			
				
					
					      bookAppointmentsViewModel . initBookAppointmentViewModel ( ) ; 
      bookAppointmentsViewModel . initBookAppointmentViewModel ( ) ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -204,11 +208,12 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
 
			
		
	
		
		
			
				
					
					        ) . paddingSymmetrical ( 24. h ,  0. h ) ; 
        ) . paddingSymmetrical ( 24. h ,  0. h ) ; 
 
			
		
	
		
		
			
				
					
					      case  1 : 
      case  1 : 
 
			
		
	
		
		
			
				
					
					        / / TODO:  Get  LiveCare  type  Select  UI  from  Hussain 
        / / TODO:  Get  LiveCare  type  Select  UI  from  Hussain 
 
			
		
	
		
		
			
				
					
					        return  Column ( 
        return  appState . isAuthenticated 
 
			
				
				
			
		
	
		
		
			
				
					
					          children:  [ 
            ?  Column ( 
 
			
				
				
			
		
	
		
		
			
				
					
					            Container ( 
                children:  [ 
 
			
				
				
			
		
	
		
		
			
				
					
					              decoration:  RoundedRectangleBorder ( ) . toSmoothCornerDecoration ( 
                  Container ( 
 
			
				
				
			
		
	
		
		
			
				
					
					                color:  AppColors . whiteColor , 
                    decoration:  RoundedRectangleBorder ( ) . toSmoothCornerDecoration ( 
 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					                      color:  AppColors . whiteColor , 
 
			
		
	
		
		
			
				
					
					                borderRadius:  24. h , 
                borderRadius:  24. h , 
 
			
		
	
		
		
			
				
					
					                hasShadow:  false , 
                hasShadow:  false , 
 
			
		
	
		
		
			
				
					
					              ) , 
              ) , 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -318,7 +323,8 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
 
			
		
	
		
		
			
				
					
					              ) , 
              ) , 
 
			
		
	
		
		
			
				
					
					            ) , 
            ) , 
 
			
		
	
		
		
			
				
					
					          ] , 
          ] , 
 
			
		
	
		
		
			
				
					
					        ) . paddingSymmetrical ( 24. h ,  0. h ) ; 
              ) . paddingSymmetrical ( 24. h ,  0. h ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					            :  getLiveCareNotLoggedInUI ( ) ; 
 
			
		
	
		
		
			
				
					
					      default : 
      default : 
 
			
		
	
		
		
			
				
					
					        SizedBox . shrink ( ) ; 
        SizedBox . shrink ( ) ; 
 
			
		
	
		
		
			
				
					
					    } 
    } 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -375,4 +381,93 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
 
			
		
	
		
		
			
				
					
					      } ) ; 
      } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
    } 
 
			
		
	
		
		
			
				
					
					  } 
  } 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  Widget  getLiveCareNotLoggedInUI ( )  { 
 
			
		
	
		
		
			
				
					
					    return  Column ( 
 
			
		
	
		
		
			
				
					
					      crossAxisAlignment:  CrossAxisAlignment . start , 
 
			
		
	
		
		
			
				
					
					      children:  [ 
 
			
		
	
		
		
			
				
					
					        Row ( 
 
			
		
	
		
		
			
				
					
					          children:  [ 
 
			
		
	
		
		
			
				
					
					            Utils . buildSvgWithAssets ( icon:  AppAssets . immediate_service_icon ,  width:  58. h ,  height:  58. h ) , 
 
			
		
	
		
		
			
				
					
					            SizedBox ( width:  18. h ) , 
 
			
		
	
		
		
			
				
					
					            Expanded ( 
 
			
		
	
		
		
			
				
					
					              child:  Column ( 
 
			
		
	
		
		
			
				
					
					                crossAxisAlignment:  CrossAxisAlignment . start , 
 
			
		
	
		
		
			
				
					
					                children:  [ 
 
			
		
	
		
		
			
				
					
					                  " Immediate service " . needTranslation . toText18 ( color:  AppColors . textColor ,  isBold:  true ) , 
 
			
		
	
		
		
			
				
					
					                  " No need to wait, you will get medical consultation immediately via video call " . needTranslation . toText14 ( color:  AppColors . greyTextColor ,  weight:  FontWeight . w500 ) , 
 
			
		
	
		
		
			
				
					
					                ] , 
 
			
		
	
		
		
			
				
					
					              ) , 
 
			
		
	
		
		
			
				
					
					            ) , 
 
			
		
	
		
		
			
				
					
					          ] , 
 
			
		
	
		
		
			
				
					
					        ) , 
 
			
		
	
		
		
			
				
					
					        SizedBox ( height:  24. h ) , 
 
			
		
	
		
		
			
				
					
					        Row ( 
 
			
		
	
		
		
			
				
					
					          children:  [ 
 
			
		
	
		
		
			
				
					
					            Utils . buildSvgWithAssets ( icon:  AppAssets . no_visit_icon ,  width:  58. h ,  height:  58. h ) , 
 
			
		
	
		
		
			
				
					
					            SizedBox ( width:  18. h ) , 
 
			
		
	
		
		
			
				
					
					            Expanded ( 
 
			
		
	
		
		
			
				
					
					              child:  Column ( 
 
			
		
	
		
		
			
				
					
					                crossAxisAlignment:  CrossAxisAlignment . start , 
 
			
		
	
		
		
			
				
					
					                children:  [ 
 
			
		
	
		
		
			
				
					
					                  " No visit required " . needTranslation . toText18 ( color:  AppColors . textColor ,  isBold:  true ) , 
 
			
		
	
		
		
			
				
					
					                  LocaleKeys . livecarePoint5 . tr ( context:  context ) . toText14 ( color:  AppColors . greyTextColor ,  weight:  FontWeight . w500 ) , 
 
			
		
	
		
		
			
				
					
					                ] , 
 
			
		
	
		
		
			
				
					
					              ) , 
 
			
		
	
		
		
			
				
					
					            ) , 
 
			
		
	
		
		
			
				
					
					          ] , 
 
			
		
	
		
		
			
				
					
					        ) , 
 
			
		
	
		
		
			
				
					
					        SizedBox ( height:  24. h ) , 
 
			
		
	
		
		
			
				
					
					        Row ( 
 
			
		
	
		
		
			
				
					
					          children:  [ 
 
			
		
	
		
		
			
				
					
					            Utils . buildSvgWithAssets ( icon:  AppAssets . doctor_contact_icon ,  width:  58. h ,  height:  58. h ) , 
 
			
		
	
		
		
			
				
					
					            SizedBox ( width:  18. h ) , 
 
			
		
	
		
		
			
				
					
					            Expanded ( 
 
			
		
	
		
		
			
				
					
					              child:  Column ( 
 
			
		
	
		
		
			
				
					
					                crossAxisAlignment:  CrossAxisAlignment . start , 
 
			
		
	
		
		
			
				
					
					                children:  [ 
 
			
		
	
		
		
			
				
					
					                  " Doctor will contact " . needTranslation . toText18 ( color:  AppColors . textColor ,  isBold:  true ) , 
 
			
		
	
		
		
			
				
					
					                  " A specialised doctor will contact you and will be able to view your medical history " . needTranslation . toText14 ( color:  AppColors . greyTextColor ,  weight:  FontWeight . w500 ) , 
 
			
		
	
		
		
			
				
					
					                ] , 
 
			
		
	
		
		
			
				
					
					              ) , 
 
			
		
	
		
		
			
				
					
					            ) , 
 
			
		
	
		
		
			
				
					
					          ] , 
 
			
		
	
		
		
			
				
					
					        ) , 
 
			
		
	
		
		
			
				
					
					        SizedBox ( height:  24. h ) , 
 
			
		
	
		
		
			
				
					
					        Row ( 
 
			
		
	
		
		
			
				
					
					          children:  [ 
 
			
		
	
		
		
			
				
					
					            Utils . buildSvgWithAssets ( icon:  AppAssets . free_med_delivery_icon ,  width:  58. h ,  height:  58. h ) , 
 
			
		
	
		
		
			
				
					
					            SizedBox ( width:  18. h ) , 
 
			
		
	
		
		
			
				
					
					            Expanded ( 
 
			
		
	
		
		
			
				
					
					              child:  Column ( 
 
			
		
	
		
		
			
				
					
					                crossAxisAlignment:  CrossAxisAlignment . start , 
 
			
		
	
		
		
			
				
					
					                children:  [ 
 
			
		
	
		
		
			
				
					
					                  " Free medicine delivery " . needTranslation . toText18 ( color:  AppColors . textColor ,  isBold:  true ) , 
 
			
		
	
		
		
			
				
					
					                  " Offers free medicine delivery for the LiveCare appointment " . needTranslation . toText14 ( color:  AppColors . greyTextColor ,  weight:  FontWeight . w500 ) , 
 
			
		
	
		
		
			
				
					
					                ] , 
 
			
		
	
		
		
			
				
					
					              ) , 
 
			
		
	
		
		
			
				
					
					            ) , 
 
			
		
	
		
		
			
				
					
					          ] , 
 
			
		
	
		
		
			
				
					
					        ) , 
 
			
		
	
		
		
			
				
					
					        SizedBox ( height:  36. h ) , 
 
			
		
	
		
		
			
				
					
					        CustomButton ( 
 
			
		
	
		
		
			
				
					
					          text:  " Login to use this service " . needTranslation , 
 
			
		
	
		
		
			
				
					
					          onPressed:  ( )  async  { 
 
			
		
	
		
		
			
				
					
					            await  authVM . onLoginPressed ( ) ; 
 
			
		
	
		
		
			
				
					
					          } , 
 
			
		
	
		
		
			
				
					
					          backgroundColor:  AppColors . primaryRedColor , 
 
			
		
	
		
		
			
				
					
					          borderColor:  AppColors . primaryRedColor , 
 
			
		
	
		
		
			
				
					
					          textColor:  AppColors . whiteColor , 
 
			
		
	
		
		
			
				
					
					          fontSize:  16 , 
 
			
		
	
		
		
			
				
					
					          fontWeight:  FontWeight . w500 , 
 
			
		
	
		
		
			
				
					
					          borderRadius:  12 , 
 
			
		
	
		
		
			
				
					
					          padding:  EdgeInsets . fromLTRB ( 10 ,  0 ,  10 ,  0 ) , 
 
			
		
	
		
		
			
				
					
					          height:  50. h , 
 
			
		
	
		
		
			
				
					
					          icon:  AppAssets . login1 , 
 
			
		
	
		
		
			
				
					
					          iconColor:  AppColors . whiteColor , 
 
			
		
	
		
		
			
				
					
					          iconSize:  24. h , 
 
			
		
	
		
		
			
				
					
					        ) , 
 
			
		
	
		
		
			
				
					
					      ] , 
 
			
		
	
		
		
			
				
					
					    ) . paddingSymmetrical ( 24. h ,  0. h ) ; 
 
			
		
	
		
		
			
				
					
					  } 
 
			
		
	
		
		
			
				
					
					} }