Files
mih-project/Frontend/patient_manager/lib/router/routeGenerator.dart

95 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:patient_manager/Authentication/authCheck.dart';
import 'package:patient_manager/components/myAppBar.dart';
import 'package:patient_manager/components/signInOrRegister.dart';
import 'package:patient_manager/objects/appUser.dart';
import 'package:patient_manager/objects/patients.dart';
import 'package:patient_manager/pages/home.dart';
import 'package:patient_manager/pages/patientAdd.dart';
import 'package:patient_manager/pages/patientEdit.dart';
import 'package:patient_manager/pages/patientManager.dart';
import 'package:patient_manager/pages/patientView.dart';
import 'package:patient_manager/pages/profileUpdate.dart';
class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings) {
final args = settings.arguments;
switch (settings.name) {
case '/':
return MaterialPageRoute(builder: (_) => const AuthCheck());
case '/home':
return MaterialPageRoute(builder: (_) => const Home());
case '/patient-manager':
if (args is String) {
//print("route generator: $args");
return MaterialPageRoute(
builder: (_) => PatientManager(
userEmail: args,
),
);
}
return _errorRoute();
case '/patient-manager/add':
if (args is String) {
return MaterialPageRoute(
builder: (_) => AddPatient(
userEmail: args,
),
);
}
return _errorRoute();
case '/patient-manager/patient':
if (args is Patient) {
return MaterialPageRoute(
builder: (_) => PatientView(
selectedPatient: args,
),
);
}
return _errorRoute();
case '/patient-manager/patient/edit':
if (args is Patient) {
return MaterialPageRoute(
builder: (_) => EditPatient(
selectedPatient: args,
),
);
}
return _errorRoute();
case '/profile':
if (args is AppUser) {
return MaterialPageRoute(
builder: (_) => ProfileUpdate(signedInUser: args),
);
}
return _errorRoute();
case '/signin':
return MaterialPageRoute(builder: (_) => const SignInOrRegister());
// //case '/signIn':
// // return MaterialPageRoute(builder: (_) => SignIn());
// case '/auth':
// return MaterialPageRoute(builder: (_) => const AuthPage());
}
throw '';
}
}
Route<dynamic> _errorRoute() {
return MaterialPageRoute(builder: (_) {
return const Scaffold(
appBar: MyAppBar(barTitle: "Error"),
body: Center(
child: Text("Error"),
),
);
});
}