update pat man nav

This commit is contained in:
2025-09-09 11:45:29 +02:00
parent b3845489d7
commit 1a474137fd
8 changed files with 288 additions and 80 deletions

View File

@@ -1,4 +1,5 @@
import 'dart:convert';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_service_calls.dart';
@@ -363,15 +364,24 @@ class _BuildPatientsListState extends State<BuildMihPatientSearchList> {
child: MihButton(
onPressed: () {
if (hasAccess) {
Navigator.of(context)
.pushNamed('/patient-manager/patient',
arguments: PatientViewArguments(
widget.signedInUser,
widget.patients[index],
widget.businessUser,
widget.business,
"business",
));
context.pop();
context.pushNamed('patientManagerPatient',
extra: PatientViewArguments(
widget.signedInUser,
widget.patients[index],
widget.businessUser,
widget.business,
"business",
));
// Navigator.of(context)
// .pushNamed('/patient-manager/patient',
// arguments: PatientViewArguments(
// widget.signedInUser,
// widget.patients[index],
// widget.businessUser,
// widget.business,
// "business",
// ));
} else {
noAccessWarning();
}

View File

@@ -1,4 +1,6 @@
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.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_service_calls.dart';
@@ -49,14 +51,15 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
final baseAPI = AppEnviroment.baseApiUrl;
void submitApointment(int index) {
Future<void> submitApointment(int index) async {
//To-Do: Add the appointment to the database
// print("To-Do: Add the appointment to the database");
String description =
"Date: ${dateController.text}\nTime: ${timeController.text}\n";
description += "Medical Practice: ${widget.business!.Name}\n";
description += "Contact Number: ${widget.business!.contact_no}";
MihMzansiCalendarApis.addPatientAppointment(
int statusCode;
statusCode = await MihMzansiCalendarApis.addPatientAppointment(
widget.signedInUser,
false,
widget.patientAccesses[index].app_id,
@@ -71,6 +74,86 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
timeController.text,
context,
);
if (statusCode == 201) {
context.pop();
successPopUp("Successfully Added Appointment",
"You appointment has been successfully added to your calendar.");
} else {
internetConnectionPopUp();
}
}
void internetConnectionPopUp() {
showDialog(
context: context,
builder: (context) {
return const MIHErrorMessage(
errorType: "Internet Connection",
);
},
);
}
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();
context.pop();
setState(() {
dateController.clear();
timeController.clear();
idController.clear();
fnameController.clear();
lnameController.clear();
});
},
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"),
);
},
);
}
bool isAppointmentFieldsFilled() {
@@ -341,15 +424,24 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
),
MihButton(
onPressed: () {
Navigator.of(context)
.pushNamed('/patient-manager/patient',
arguments: PatientViewArguments(
widget.signedInUser,
patientProfile,
widget.businessUser,
widget.business,
"business",
));
context.pop();
context.pushNamed('patientManagerPatient',
extra: PatientViewArguments(
widget.signedInUser,
patientProfile,
widget.businessUser,
widget.business,
"business",
));
// Navigator.of(context)
// .pushNamed('/patient-manager/patient',
// arguments: PatientViewArguments(
// widget.signedInUser,
// patientProfile,
// widget.businessUser,
// widget.business,
// "business",
// ));
},
buttonColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode ==

View File

@@ -1,3 +1,4 @@
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
@@ -22,11 +23,16 @@ class _PatManagerTileState extends State<PatManagerTile> {
@override
Widget build(BuildContext context) {
return MihPackageTile(
authenticateUser: true,
onTap: () {
Navigator.of(context).pushNamed(
'/patient-manager',
arguments: widget.arguments,
context.goNamed(
'patientManager',
extra: widget.arguments,
);
// Navigator.of(context).pushNamed(
// '/patient-manager',
// arguments: widget.arguments,
// );
},
appName: "Patient Manager",
appIcon: Icon(

View File

@@ -1,6 +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_package_components/mih_icons.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';
@@ -269,7 +271,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
fullscreen: false,
windowTitle: "Appointment Type",
onWindowTapClose: () {
Navigator.of(context).pop();
context.pop();
},
windowBody: Column(
children: [
@@ -285,7 +287,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
MihButton(
onPressed: () {
widget.onIndexChange(1);
Navigator.of(context).pop();
context.pop();
},
buttonColor: MihColors.getGreenColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
@@ -304,7 +306,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
MihButton(
onPressed: () {
widget.onIndexChange(2);
Navigator.of(context).pop();
context.pop();
},
buttonColor: MihColors.getGreenColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
@@ -354,7 +356,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
fullscreen: false,
windowTitle: "Add Appointment",
onWindowTapClose: () {
Navigator.of(context).pop();
context.pop();
_appointmentDateController.clear();
_appointmentTimeController.clear();
_appointmentTitleController.clear();
@@ -457,10 +459,11 @@ class _WaitingRoomState extends State<WaitingRoom> {
);
}
void addAppointmentCall() {
Future<void> addAppointmentCall() async {
if (isAppointmentInputValid()) {
int statusCode;
if (widget.personalSelected == false) {
MihMzansiCalendarApis.addBusinessAppointment(
statusCode = await MihMzansiCalendarApis.addBusinessAppointment(
widget.signedInUser,
widget.business!,
widget.businessUser!,
@@ -472,7 +475,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
context,
);
} else {
MihMzansiCalendarApis.addPersonalAppointment(
statusCode = await MihMzansiCalendarApis.addPersonalAppointment(
widget.signedInUser,
_appointmentTitleController.text,
_appointmentDescriptionIDController.text,
@@ -481,6 +484,13 @@ class _WaitingRoomState extends State<WaitingRoom> {
context,
);
}
if (statusCode == 201) {
context.pop();
successPopUp("Successfully Added Appointment",
"You appointment has been successfully added to your calendar.");
} else {
internetConnectionPopUp();
}
} else {
showDialog(
context: context,
@@ -492,6 +502,77 @@ class _WaitingRoomState extends State<WaitingRoom> {
checkforchange();
}
void internetConnectionPopUp() {
showDialog(
context: context,
builder: (context) {
return const MIHErrorMessage(
errorType: "Internet Connection",
);
},
);
}
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();
setState(() {
_appointmentDateController.clear();
_appointmentTimeController.clear();
_appointmentTitleController.clear();
_appointmentDescriptionIDController.clear();
});
},
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"),
);
},
);
}
bool isAppointmentInputValid() {
if (_appointmentDescriptionIDController.text.isEmpty ||
_appointmentDateController.text.isEmpty ||

View File

@@ -1,3 +1,4 @@
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
@@ -48,7 +49,11 @@ class _PatManagerState extends State<PatManager> {
icon: const Icon(Icons.arrow_back),
iconSize: 35,
onTap: () {
Navigator.of(context).pop();
// Navigator.of(context).pop();
context.goNamed(
'mihHome',
extra: false,
);
FocusScope.of(context).unfocus();
},
);