|
|
|
|
@ -40,9 +40,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
|
|
|
|
|
late AppState appState;
|
|
|
|
|
late BookAppointmentsViewModel bookAppointmentsViewModel;
|
|
|
|
|
|
|
|
|
|
// Scroll controller to control page scrolling when a group expands
|
|
|
|
|
late ScrollController _scrollController;
|
|
|
|
|
// Map of keys for each item to allow scrolling to them
|
|
|
|
|
final Map<int, GlobalKey> _itemKeys = {};
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
@ -79,6 +77,20 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
|
|
|
|
|
backgroundColor: AppColors.bgScaffoldColor,
|
|
|
|
|
body: CollapsingListView(
|
|
|
|
|
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(
|
|
|
|
|
controller: _scrollController,
|
|
|
|
|
child: Padding(
|
|
|
|
|
@ -124,40 +136,42 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
CustomButton(
|
|
|
|
|
text: LocaleKeys.byClinic.tr(context: context),
|
|
|
|
|
onPressed: () {
|
|
|
|
|
bookAppointmentsVM.setIsSortByClinic(true);
|
|
|
|
|
},
|
|
|
|
|
backgroundColor: bookAppointmentsVM.isSortByClinic ? AppColors.bgRedLightColor : AppColors.whiteColor,
|
|
|
|
|
borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.textColor.withOpacity(0.2),
|
|
|
|
|
textColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.blackColor,
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
|
borderRadius: 10,
|
|
|
|
|
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
|
|
|
|
|
height: 40.h,
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 8.h),
|
|
|
|
|
CustomButton(
|
|
|
|
|
text: LocaleKeys.byHospital.tr(context: context),
|
|
|
|
|
onPressed: () {
|
|
|
|
|
bookAppointmentsVM.setIsSortByClinic(false);
|
|
|
|
|
},
|
|
|
|
|
backgroundColor: bookAppointmentsVM.isSortByClinic ? AppColors.whiteColor : AppColors.bgRedLightColor,
|
|
|
|
|
borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.textColor.withOpacity(0.2) : AppColors.primaryRedColor,
|
|
|
|
|
textColor: bookAppointmentsVM.isSortByClinic ? AppColors.blackColor : AppColors.primaryRedColor,
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
|
borderRadius: 10,
|
|
|
|
|
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
|
|
|
|
|
height: 40.h,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
).paddingSymmetrical(0.h, 0.h),
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
if (bookAppointmentsViewModel.isGetDocForHealthCal && bookAppointmentsVM.showSortFilterButtons)
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
CustomButton(
|
|
|
|
|
text: LocaleKeys.byClinic.tr(context: context),
|
|
|
|
|
onPressed: () {
|
|
|
|
|
bookAppointmentsVM.setIsSortByClinic(true);
|
|
|
|
|
},
|
|
|
|
|
backgroundColor: bookAppointmentsVM.isSortByClinic ? AppColors.bgRedLightColor : AppColors.whiteColor,
|
|
|
|
|
borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.textColor.withOpacity(0.2),
|
|
|
|
|
textColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.blackColor,
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
|
borderRadius: 10,
|
|
|
|
|
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
|
|
|
|
|
height: 40.h,
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 8.h),
|
|
|
|
|
CustomButton(
|
|
|
|
|
text: LocaleKeys.byHospital.tr(context: context),
|
|
|
|
|
onPressed: () {
|
|
|
|
|
bookAppointmentsVM.setIsSortByClinic(false);
|
|
|
|
|
},
|
|
|
|
|
backgroundColor: bookAppointmentsVM.isSortByClinic ? AppColors.whiteColor : AppColors.bgRedLightColor,
|
|
|
|
|
borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.textColor.withOpacity(0.2) : AppColors.primaryRedColor,
|
|
|
|
|
textColor: bookAppointmentsVM.isSortByClinic ? AppColors.blackColor : AppColors.primaryRedColor,
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
|
borderRadius: 10,
|
|
|
|
|
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
|
|
|
|
|
height: 40.h,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
).paddingSymmetrical(0.h, 0.h),
|
|
|
|
|
if (bookAppointmentsViewModel.isGetDocForHealthCal && bookAppointmentsVM.showSortFilterButtons)
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.max,
|
|
|
|
|
children: [
|
|
|
|
|
|