search filter on select doctor page.

pull/147/head
aamir-csol 6 months ago
parent 38d8341963
commit 83f04bc0e6

@ -49,6 +49,7 @@ class BookAppointmentsViewModel extends ChangeNotifier {
bool isLiveCareSchedule = false; bool isLiveCareSchedule = false;
bool isGetDocForHealthCal = false; bool isGetDocForHealthCal = false;
bool showSortFilterButtons = false;
int? calculationID = 0; int? calculationID = 0;
bool isSortByClinic = true; bool isSortByClinic = true;
@ -200,8 +201,10 @@ class BookAppointmentsViewModel extends ChangeNotifier {
void filterClinics(String? query) { void filterClinics(String? query) {
if (query!.isEmpty) { if (query!.isEmpty) {
_filteredClinicsList = List.from(clinicsList); _filteredClinicsList = List.from(clinicsList);
showSortFilterButtons = false;
} else { } else {
_filteredClinicsList = clinicsList.where((clinic) => clinic.clinicDescription?.toLowerCase().contains(query!.toLowerCase()) ?? false).toList(); _filteredClinicsList = clinicsList.where((clinic) => clinic.clinicDescription?.toLowerCase().contains(query!.toLowerCase()) ?? false).toList();
showSortFilterButtons = query.length >= 3;
} }
notifyListeners(); notifyListeners();
} }

@ -40,9 +40,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
late AppState appState; late AppState appState;
late BookAppointmentsViewModel bookAppointmentsViewModel; late BookAppointmentsViewModel bookAppointmentsViewModel;
// Scroll controller to control page scrolling when a group expands
late ScrollController _scrollController; late ScrollController _scrollController;
// Map of keys for each item to allow scrolling to them
final Map<int, GlobalKey> _itemKeys = {}; final Map<int, GlobalKey> _itemKeys = {};
@override @override
@ -79,6 +77,20 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
backgroundColor: AppColors.bgScaffoldColor, backgroundColor: AppColors.bgScaffoldColor,
body: CollapsingListView( body: CollapsingListView(
title: "Choose Doctor".needTranslation, title: "Choose Doctor".needTranslation,
// bottomChild: Container(
// decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.only(topLeft: Radius.circular(24.r), topRight: Radius.circular(24.r))),
// padding: EdgeInsets.symmetric(vertical: 20.h, horizontal: 20.h),
// child: CustomButton(
// text: LocaleKeys.search.tr(),
// onPressed: () {
// },
// icon: null,
// fontSize: 16.f,
// backgroundColor: AppColors.primaryRedColor,
// borderColor: AppColors.primaryRedColor,
// borderRadius: 12.r,
// fontWeight: FontWeight.w500),
// ),
child: SingleChildScrollView( child: SingleChildScrollView(
controller: _scrollController, controller: _scrollController,
child: Padding( child: Padding(
@ -124,6 +136,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
], ],
), ),
SizedBox(height: 16.h), SizedBox(height: 16.h),
if (bookAppointmentsViewModel.isGetDocForHealthCal && bookAppointmentsVM.showSortFilterButtons)
Row( Row(
children: [ children: [
CustomButton( CustomButton(
@ -157,6 +170,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
), ),
], ],
).paddingSymmetrical(0.h, 0.h), ).paddingSymmetrical(0.h, 0.h),
if (bookAppointmentsViewModel.isGetDocForHealthCal && bookAppointmentsVM.showSortFilterButtons)
SizedBox(height: 16.h), SizedBox(height: 16.h),
Row( Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,

Loading…
Cancel
Save