update Calendar nav

This commit is contained in:
2025-08-18 16:22:07 +02:00
parent e2c9b95b8d
commit 43ab2b6681
5 changed files with 407 additions and 226 deletions

View File

@@ -1,5 +1,8 @@
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart';
@@ -552,10 +555,11 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
);
}
void updateAppointmentCall(int index) {
Future<void> updateAppointmentCall(int index) async {
int statusCode;
if (isAppointmentInputValid()) {
if (widget.personalSelected == true) {
MihMzansiCalendarApis.updatePersonalAppointment(
statusCode = await MihMzansiCalendarApis.updatePersonalAppointment(
widget.signedInUser,
widget.business,
null,
@@ -568,7 +572,7 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
);
} else if (widget.personalSelected == false &&
widget.inWaitingRoom == false) {
MihMzansiCalendarApis.updateBusinessAppointment(
statusCode = await MihMzansiCalendarApis.updateBusinessAppointment(
widget.signedInUser,
widget.business,
widget.businessUser,
@@ -580,7 +584,7 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
context,
);
} else {
MihMzansiCalendarApis.updatePatientAppointment(
statusCode = await MihMzansiCalendarApis.updatePatientAppointment(
widget.signedInUser,
widget.business,
widget.businessUser,
@@ -592,6 +596,25 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
context,
);
}
if (statusCode == 200) {
context.pop();
context.pop();
if (!widget.inWaitingRoom) {
context.goNamed(
"mihCalendar",
extra: CalendarArguments(
widget.signedInUser,
widget.personalSelected,
widget.business,
widget.businessUser,
),
);
} else {
//to-Do waiting room apointments
}
} else {
internetConnectionPopUp();
}
} else {
showDialog(
context: context,
@@ -602,9 +625,8 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
}
}
void deleteAppointmentCall(int index) {
print("personal selected: ${widget.personalSelected}");
MihMzansiCalendarApis.deleteAppointmentAPICall(
Future<void> deleteAppointmentCall(int index) async {
int statucCode = await MihMzansiCalendarApis.deleteAppointmentAPICall(
widget.signedInUser,
widget.personalSelected,
widget.business,
@@ -613,6 +635,82 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
widget.appointmentList[index].idappointments,
context,
);
if (statucCode == 200) {
context.pop();
context.pop();
setState(() {
widget.appointmentList.removeAt(index);
});
successPopUp("Successfully Deleted Appointment",
"You appointment has been successfully deleted from your calendar.");
} else {
internetConnectionPopUp();
}
}
void successPopUp(String title, String message) {
showDialog(
context: context,
builder: (context) {
return MihPackageAlert(
alertIcon: Icon(
Icons.check_circle_outline_rounded,
size: 150,
color: MihColors.getGreenColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
),
alertTitle: title,
alertBody: Column(
children: [
Text(
message,
style: TextStyle(
color: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
fontSize: 15,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 25),
Center(
child: MihButton(
onPressed: () {
context.pop();
},
buttonColor: MihColors.getGreenColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
elevation: 10,
width: 300,
child: Text(
"Dismiss",
style: TextStyle(
color: MihColors.getPrimaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==
"Dark"),
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
),
)
],
),
alertColour: MihColors.getGreenColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
);
},
);
}
void internetConnectionPopUp() {
showDialog(
context: context,
builder: (context) {
return const MIHErrorMessage(
errorType: "Internet Connection",
);
},
);
}
bool canEditAppointment(int index) {