split navigation into internal and external navigations

This commit is contained in:
2024-09-02 10:03:49 +02:00
parent 38200c1128
commit f4700147bb

View File

@@ -3,6 +3,8 @@ import 'package:patient_manager/Authentication/authCheck.dart';
import 'package:patient_manager/components/addOrViewPatient.dart'; import 'package:patient_manager/components/addOrViewPatient.dart';
import 'package:patient_manager/objects/appUser.dart'; import 'package:patient_manager/objects/appUser.dart';
import 'package:patient_manager/objects/arguments.dart'; import 'package:patient_manager/objects/arguments.dart';
import 'package:patient_manager/pages/authentication/forgotPassword.dart';
import 'package:patient_manager/pages/authentication/resetPassword.dart';
import 'package:patient_manager/pages/fullScreenFile.dart'; import 'package:patient_manager/pages/fullScreenFile.dart';
import 'package:patient_manager/pages/patientAccessReview.dart'; import 'package:patient_manager/pages/patientAccessReview.dart';
import 'package:patient_manager/pages/patientAdd.dart'; import 'package:patient_manager/pages/patientAdd.dart';
@@ -17,135 +19,157 @@ class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings) { static Route<dynamic> generateRoute(RouteSettings settings) {
final args = settings.arguments; final args = settings.arguments;
switch (settings.name) { // Internal Navigation
// Home or Sign in or Register Pages if (Uri.base.path == "/") {
case '/': switch (settings.name) {
return MaterialPageRoute( // Authgentication
settings: settings, builder: (_) => const AuthCheck()); case '/':
//=============================================================== return MaterialPageRoute(
settings: settings, builder: (_) => const AuthCheck());
case '/forgot-password':
return MaterialPageRoute(
settings: settings, builder: (_) => const ForgotPassword());
//http://mzansi-innovation-hub.co.za/auth/reset-password
//User Profile //===============================================================
case '/user-profile':
if (args is AppProfileUpdateArguments) {
return MaterialPageRoute(
settings: settings,
builder: (_) => ProfileUserUpdate(
arguments: args,
),
);
}
return _errorRoute();
//===============================================================
//Business Profile Pages //User Profile
case '/business-profile': case '/user-profile':
if (args is BusinessArguments) { if (args is AppProfileUpdateArguments) {
return MaterialPageRoute( return MaterialPageRoute(
settings: settings, settings: settings,
builder: (_) => ProfileBusinessUpdate( builder: (_) => ProfileUserUpdate(
arguments: args, arguments: args,
), ),
); );
} }
return _errorRoute(); return _errorRoute();
case '/business-profile/set-up': //===============================================================
if (args is AppUser) {
return MaterialPageRoute(
settings: settings,
builder: (_) => ProfileBusinessAdd(
signedInUser: args,
),
);
}
return _errorRoute();
//===============================================================
// Patient Profile Pages //Business Profile Pages
case '/patient-profile': case '/business-profile':
if (args is PatientViewArguments) { if (args is BusinessArguments) {
//print("route generator: $args"); return MaterialPageRoute(
return MaterialPageRoute( settings: settings,
settings: settings, builder: (_) => ProfileBusinessUpdate(
builder: (_) => AddOrViewPatient( arguments: args,
arguments: args, ),
), );
); }
} return _errorRoute();
return _errorRoute(); case '/business-profile/set-up':
case '/patient-profile/set-up': if (args is AppUser) {
if (args is AppUser) { return MaterialPageRoute(
return MaterialPageRoute( settings: settings,
settings: settings, builder: (_) => ProfileBusinessAdd(
builder: (_) => AddPatient( signedInUser: args,
signedInUser: args, ),
), );
); }
} return _errorRoute();
return _errorRoute(); //===============================================================
case '/patient-profile/edit':
if (args is PatientEditArguments) {
return MaterialPageRoute(
settings: settings,
builder: (_) => EditPatient(
signedInUser: args.signedInUser,
selectedPatient: args.selectedPatient,
),
);
}
return _errorRoute();
//===============================================================
// Access Review Page // Patient Profile Pages
case '/access-review': case '/patient-profile':
if (args is AppUser) { if (args is PatientViewArguments) {
//print("route generator: $args"); //print("route generator: $args");
return MaterialPageRoute( return MaterialPageRoute(
settings: settings, settings: settings,
builder: (_) => PatientAccessRequest( builder: (_) => AddOrViewPatient(
signedInUser: args, arguments: args,
), ),
); );
} }
return _errorRoute(); return _errorRoute();
//=============================================================== case '/patient-profile/set-up':
if (args is AppUser) {
return MaterialPageRoute(
settings: settings,
builder: (_) => AddPatient(
signedInUser: args,
),
);
}
return _errorRoute();
case '/patient-profile/edit':
if (args is PatientEditArguments) {
return MaterialPageRoute(
settings: settings,
builder: (_) => EditPatient(
signedInUser: args.signedInUser,
selectedPatient: args.selectedPatient,
),
);
}
return _errorRoute();
//===============================================================
//Patient Manager Pages // Access Review Page
case '/patient-manager': case '/access-review':
if (args is BusinessArguments) { if (args is AppUser) {
//print("route generator: $args"); //print("route generator: $args");
return MaterialPageRoute( return MaterialPageRoute(
settings: settings, settings: settings,
builder: (_) => PatientManager( builder: (_) => PatientAccessRequest(
arguments: args, signedInUser: args,
), ),
); );
} }
return _errorRoute(); return _errorRoute();
case '/patient-manager/patient': //===============================================================
if (args is PatientViewArguments) {
return MaterialPageRoute(
settings: settings,
builder: (_) => PatientView(
arguments: args,
),
);
}
return _errorRoute();
//===============================================================
//Full Screen File Viewer //Patient Manager Pages
case '/file-veiwer': case '/patient-manager':
if (args is FileViewArguments) { if (args is BusinessArguments) {
return MaterialPageRoute( //print("route generator: $args");
settings: settings, return MaterialPageRoute(
builder: (_) => FullScreenFileViewer( settings: settings,
arguments: args, builder: (_) => PatientManager(
), arguments: args,
); ),
} );
return _errorRoute(); }
return _errorRoute();
case '/patient-manager/patient':
if (args is PatientViewArguments) {
return MaterialPageRoute(
settings: settings,
builder: (_) => PatientView(
arguments: args,
),
);
}
return _errorRoute();
//===============================================================
//Full Screen File Viewer
case '/file-veiwer':
if (args is FileViewArguments) {
return MaterialPageRoute(
settings: settings,
builder: (_) => FullScreenFileViewer(
arguments: args,
),
);
}
return _errorRoute();
}
throw '';
}
// External Links Navigation
else {
var extPath = Uri.base.path;
//print("query Param: ${Uri.base.queryParameters['token']}");
switch (extPath) {
case '/auth/reset-password':
return MaterialPageRoute(
settings: settings,
builder: (_) => ResetPassword(
token: Uri.base.queryParameters['token'],
));
}
throw '';
} }
throw '';
} }
} }