Dr Search fixed

haroon_dev
haroon amjad 16 hours ago
parent 6def7b5263
commit 400e5daac0

@ -331,6 +331,42 @@ class BookAppointmentsViewModel extends ChangeNotifier {
notifyListeners();
}
void filterDoctors(String query) {
if (query.isEmpty) {
filteredDoctorList = List.from(doctorsList);
// _groupDoctorsList();
setIsNearestAppointmentSelected(isNearestAppointmentSelected);
notifyListeners();
return;
}
filteredDoctorList = doctorsList.where((doctor) {
final name = (doctor.name ?? '').toLowerCase();
final clinicName = (doctor.clinicName ?? '').toLowerCase();
final projectName = (doctor.projectName ?? '').toLowerCase();
final q = query.toLowerCase();
return name.contains(q) || clinicName.contains(q) || projectName.contains(q);
}).toList();
// Re-group filtered list
final clinicMap = <String, List<DoctorsListResponseModel>>{};
final hospitalMap = <String, List<DoctorsListResponseModel>>{};
for (var doctor in filteredDoctorList) {
final clinicKey = (doctor.clinicName ?? 'Unknown').trim();
clinicMap.putIfAbsent(clinicKey, () => []).add(doctor);
final hospitalKey = (doctor.projectName ?? 'Unknown').trim();
hospitalMap.putIfAbsent(hospitalKey, () => []).add(doctor);
}
doctorsListByClinic = clinicMap.values.toList();
doctorsListByHospital = hospitalMap.values.toList();
doctorsListGrouped = isSortByClinic ? doctorsListByClinic : doctorsListByHospital;
notifyListeners();
}
void filterClinics(String? query) {
if (query!.isEmpty) {
_filteredClinicsList = List.from(clinicsList);

@ -167,14 +167,14 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
? GestureDetector(
onTap: () {
searchEditingController.clear();
bookAppointmentsViewModel.filterClinics("");
bookAppointmentsViewModel.filterDoctors("");
textFocusNode.unfocus();
},
child: Utils.buildSvgWithAssets(icon: AppAssets.close_bottom_sheet_icon, width: 20.h, height: 20.h, fit: BoxFit.scaleDown),
)
: null,
onChange: (value) {
bookAppointmentsViewModel.filterClinics(value!);
bookAppointmentsViewModel.filterDoctors(value ?? "");
},
padding: EdgeInsets.symmetric(
vertical: ResponsiveExtension(10).h,

Loading…
Cancel
Save