import 'package:hmg_patient_app/core/viewModels/project_view_model.dart'; import 'package:hmg_patient_app/models/Appointments/DoctorListResponse.dart'; import 'package:hmg_patient_app/models/Appointments/OBGyneProcedureListResponse.dart'; import 'package:hmg_patient_app/theme/colors.dart'; import 'package:hmg_patient_app/uitl/translations_delegate_base.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:provider/provider.dart'; typedef OnHospitalSelected = Function(String, int); class ResultByHospital extends StatelessWidget { List doctorsList = []; List? paitientDoctorAppointmentList; bool isHMCSelected; bool isLiveCareAppointment; bool isObGyneAppointment; bool isDoctorNameSearch; OBGyneProcedureListResponse? obGyneProcedureListResponse; bool isDoctorSearchResult; OnHospitalSelected onHospitalSelected; ResultByHospital( {required this.doctorsList, required this.paitientDoctorAppointmentList, required this.isHMCSelected, this.isObGyneAppointment = false, this.isDoctorNameSearch = false, required this.isLiveCareAppointment, required this.isDoctorSearchResult, this.obGyneProcedureListResponse, required this.onHospitalSelected}); @override Widget build(BuildContext context) { return Column( children: [ Expanded( child: HospitalBodyWidget( patientDoctorAppointmentListHospital: paitientDoctorAppointmentList, isLiveCareAppointment: isLiveCareAppointment, isObGyneAppointment: isObGyneAppointment, isDoctorNameSearch: isDoctorNameSearch, isDoctorSearchResult: isDoctorSearchResult, onHospitalSelected: onHospitalSelected, isHMC: isHMCSelected), ), ], ); } } class HospitalBodyWidget extends StatelessWidget { final List? patientDoctorAppointmentListHospital; final bool isLiveCareAppointment; final bool isObGyneAppointment; final bool isDoctorNameSearch; final bool isDoctorSearchResult; final OBGyneProcedureListResponse? obGyneProcedureListResponse; final OnHospitalSelected onHospitalSelected; final bool isHMC; const HospitalBodyWidget( {super.key, this.patientDoctorAppointmentListHospital, required this.isLiveCareAppointment, required this.isObGyneAppointment, required this.isDoctorNameSearch, required this.isDoctorSearchResult, this.obGyneProcedureListResponse, required this.onHospitalSelected, required this.isHMC}); @override Widget build(BuildContext context) { return ListView.separated( addAutomaticKeepAlives: true, shrinkWrap: true, physics: BouncingScrollPhysics(), itemCount: patientDoctorAppointmentListHospital?.length ?? 0, separatorBuilder: (context, index) { return Container( height: 12, margin: EdgeInsets.only(left: 21, right: 21), ); }, itemBuilder: (context, index) { return InkWell( onTap: () { onHospitalSelected( patientDoctorAppointmentListHospital![index].filterName ?? '', index); }, child: Material( color: CustomColors.white, child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), child: Row( children: [ Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Padding( padding: const EdgeInsets.all(6.0), child: SvgPicture.asset( isHMC ? 'assets/images/svg/HMC.svg' : 'assets/images/svg/HMG.svg', ), ), Expanded( child: Directionality( textDirection: (context .read() .isArabic == true) ? TextDirection.rtl : TextDirection.ltr, child: Text( patientDoctorAppointmentListHospital![index] .filterName ?? '', style: TextStyle( fontSize: 22, color: isHMC ? Color(0xFF40ACC9) : Color(0xFFD02127), fontWeight: FontWeight.w700), ), ), ), ], ), SizedBox( height: 8, ), Visibility( visible: (patientDoctorAppointmentListHospital?[index] .distanceInKMs != "0"), child: Row( children: [ SvgPicture.asset( 'assets/images/svg/location.svg', ), SizedBox( width: 8, ), Text( // "${TranslationBase.of(context).nearest}: ${patientDoctorAppointmentListHospital?[index].distanceInKMs} ${TranslationBase.of(context).kilometerUnit}", "${patientDoctorAppointmentListHospital?[index].distanceInKMs} ${TranslationBase.of(context).kilometerUnit}", style: TextStyle( fontSize: 14, color: Colors.black, fontWeight: FontWeight.w600), ), ], ), ), ], ), ), Padding( padding: EdgeInsets.all(8), child: Center( child: Icon( Icons.arrow_forward_ios, color: CustomColors.black, size: 16, ), ), ), ], )), ), ); // return AppExpandableNotifier( // applyBackgroundColor: false, // widgetColor: CustomColors.appBackgroudGrey2Color, // title: (patientDoctorAppointmentListHospital?[index].distanceInKMs != // "0") // ? patientDoctorAppointmentListHospital![index].filterName! + // " - " + // patientDoctorAppointmentListHospital![index].distanceInKMs! + // " " + // TranslationBase.of(context).km // : patientDoctorAppointmentListHospital![index].filterName, // projectTitleTop: // patientDoctorAppointmentListHospital![index].projectTopName, // projectTitleBottom: (patientDoctorAppointmentListHospital![index] // .distanceInKMs != // "0") // ? patientDoctorAppointmentListHospital![index] // .projectBottomName // .toString() + // " - " + // patientDoctorAppointmentListHospital![index].distanceInKMs! + // " " + // TranslationBase.of(context).km // : patientDoctorAppointmentListHospital![index] // .projectBottomName // .toString(), // isTitleSingleLine: false, // isDoctorSearchResult: isDoctorSearchResult, // isDisabled: true, // isExpand: // patientDoctorAppointmentListHospital?.length == 1 ? true : false, // // bodyWidget: ListView.separated( // // shrinkWrap: true, // // physics: NeverScrollableScrollPhysics(), // // padding: // // EdgeInsets.only(bottom: 10, top: 10, left: 21, right: 21), // // itemBuilder: (context, _index) { // // // print("the index of patientDoctorAppointmentList is ${_index}"); // // // print("the index of parent is ${index}"); // // final doctor = patientDoctorAppointmentListHospital![index] // // .patientDoctorAppointmentList![_index]; // // // print('the doctor is ${doctor.toJson()}'); // // return DoctorView( // // doctor: doctor, // // isLiveCareAppointment: isLiveCareAppointment, // // isObGyneAppointment: isObGyneAppointment, // // isDoctorNameSearch: isDoctorNameSearch, // // obGyneProcedureListResponse: obGyneProcedureListResponse, // // isShowDate: false, // // onTap: () { // // context // // .read() // // .analytics // // .appointment // // .book_appointment_select_doctor( // // appointment_type: 'regular', doctor: doctor); // // }); // // }, // // separatorBuilder: (context, index) => SizedBox(height: 14), // // itemCount: patientDoctorAppointmentListHospital?[index].patientDoctorAppointmentList?.length ?? 0), // ); }, ); } }