Added Splash screen, logo and some minor changes in the code Co-authored-by: Jipson George <152465898+Jipson-cosq@users.noreply.github.com> Reviewed-on: cosqnet/telemednet#10 Co-authored-by: DhanshCOSQ <dhanshas@cosq.net> Co-committed-by: DhanshCOSQ <dhanshas@cosq.net>
212 lines
10 KiB
Dart
212 lines
10 KiB
Dart
import 'package:firebase_ui_auth/firebase_ui_auth.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:medora/controllers/consultation_center_controller.dart';
|
|
import 'package:medora/data/models/consultation_center.dart';
|
|
import 'package:medora/data/models/doctor.dart';
|
|
import 'package:medora/screens/authentication/launch_screen.dart';
|
|
// import 'package:medora/data/telemed_user.dart';
|
|
import 'package:medora/controllers/patient_controller.dart';
|
|
import 'package:medora/route/route_names.dart';
|
|
import 'package:medora/screens/common/loading_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_consultation_schedule/business_center_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_consultation_schedule/center_fee_and_duration_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_consultation_schedule/consultation_day_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_consultation_schedule/consultation_centers_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_consultation_schedule/consultation_time_slot_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_dashboard/doctor_dashboard_home_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_dashboard/doctor_dashboard_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_dashboard/doctor_landing_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_dashboard/doctor_personal_profile_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_dashboard/doctor_services_menu_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/achivements_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/address_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/digital_signature_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/doctor_profile_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/experience_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/profile_description_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/qualifications_screen.dart';
|
|
import 'package:medora/screens/doctor_screen/doctor_profile_screens/specialities_selection_screen.dart';
|
|
import 'package:medora/screens/patient_screens/appoinment_bookings/consultation_booking_screen.dart';
|
|
import 'package:medora/screens/patient_screens/appoinment_bookings/consultation_time_screen.dart';
|
|
import 'package:medora/screens/patient_screens/appoinment_bookings/consultations_center_screen.dart';
|
|
import 'package:medora/screens/patient_screens/appoinment_bookings/doctor_details_screen.dart';
|
|
import 'package:medora/screens/patient_screens/appoinment_bookings/doctors_list_screen.dart';
|
|
import 'package:medora/screens/patient_screens/appoinment_bookings/speciality_screen.dart';
|
|
import 'package:medora/screens/patient_screens/patient_dashboard/patient_dashboard_screen.dart';
|
|
import 'package:medora/screens/patient_screens/patient_dashboard/patient_home_screen.dart';
|
|
import 'package:medora/screens/patient_screens/patient_dashboard/patient_profile_screen.dart';
|
|
import 'package:medora/screens/patient_screens/registration_screens/patient_adress_screen.dart';
|
|
import 'package:medora/screens/patient_screens/registration_screens/patient_family_members_screen.dart';
|
|
import 'package:medora/screens/patient_screens/registration_screens/patient_registration_screen.dart';
|
|
import 'package:medora/screens/splash_screen.dart';
|
|
|
|
import '../controllers/doctor_controller.dart';
|
|
import '../screens/patient_screens/patient_landing_screen.dart';
|
|
import '../screens/patient_screens/registration_screens/family_members_edit_screen.dart';
|
|
|
|
final Map<String, Widget Function(BuildContext)> routes = {
|
|
RouteNames.launch: (context) => const LaunchScreen(),
|
|
RouteNames.signIn: (context) => SignInScreen(
|
|
providers: [EmailAuthProvider(), PhoneAuthProvider()],
|
|
),
|
|
RouteNames.signUp: (context) => const RegisterScreen(),
|
|
// RouteNames.userProfile: (context) {
|
|
// var user = ModalRoute.of(context)!.settings.arguments as TelemedUser?;
|
|
// return UserProfileScreen(user: user);
|
|
// },
|
|
// RouteNames.userHome: (context) => const UserScreen(),
|
|
RouteNames.profileUpload: (context) => const ProfileUploadPage(),
|
|
RouteNames.patientLandingScreen: (context) => const PatientLandingScreen(),
|
|
RouteNames.patientHomeScreen: (context) => const PatientHomeScreen(),
|
|
RouteNames.doctorLandingScreen: (context) => const DoctorLandingScreen(),
|
|
RouteNames.patientRegistrationScreen: (context) =>
|
|
const PatientRegistrationScreen(),
|
|
RouteNames.qualificationsScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as DoctorController?;
|
|
return QualificationsScreen(
|
|
controller: controller ?? DoctorController(), // Provide fallback
|
|
);
|
|
},
|
|
RouteNames.doctorAddressScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as DoctorController?;
|
|
return DoctorAddressScreen(
|
|
controller: controller ?? DoctorController(), // Provide fallback
|
|
);
|
|
},
|
|
RouteNames.profileDescriptionScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as DoctorController?;
|
|
return ProfileDescriptionScreen(
|
|
controller: controller ?? DoctorController(),
|
|
);
|
|
},
|
|
RouteNames.experienceScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as DoctorController?;
|
|
return ExperienceScreen(
|
|
controller: controller ?? DoctorController(),
|
|
);
|
|
},
|
|
RouteNames.specialitiesScreeen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as DoctorController?;
|
|
return SpecialitiesScreen(
|
|
controller: controller ?? DoctorController(),
|
|
);
|
|
},
|
|
RouteNames.digitalSignatureScreeen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as DoctorController?;
|
|
return DigitalSignatureScreen(
|
|
controller: controller ?? DoctorController(),
|
|
);
|
|
},
|
|
RouteNames.achievementsScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as DoctorController?;
|
|
return AchievementsScreen(
|
|
controller: controller ?? DoctorController(),
|
|
);
|
|
},
|
|
RouteNames.patientAdressScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as PatientController;
|
|
return PatientAddressScreen(controller: controller);
|
|
},
|
|
RouteNames.patientFamilyMembersScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as PatientController;
|
|
return PatientFamilyMembersScreen(controller: controller);
|
|
},
|
|
RouteNames.familyMembersEditScreen: (context) {
|
|
final controller =
|
|
ModalRoute.of(context)!.settings.arguments as PatientController;
|
|
return FamilyMembersEditScreen(controller: controller);
|
|
},
|
|
RouteNames.patientprofileScreen: (context) => const PatientProfileScreen(),
|
|
RouteNames.patientDashboardScreen: (context) =>
|
|
const PatientDashboardScreen(),
|
|
RouteNames.specialityScreen: (context) => const SpecialtyScreen(),
|
|
RouteNames.doctorListScreen: (context) {
|
|
final args =
|
|
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
|
|
return DoctorsListScreen(
|
|
specialty: args['specialty'] as String,
|
|
);
|
|
},
|
|
RouteNames.doctorDetailsScreen: (context) {
|
|
final args =
|
|
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
|
|
return DoctorDetailsScreen(
|
|
doctor: args['doctor'] as Doctor,
|
|
preloadedImage: args['imageProvider'] as ImageProvider?,
|
|
);
|
|
},
|
|
RouteNames.consultationCenterScreen: (context) {
|
|
final args =
|
|
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
|
|
return ConsultationsCenterScreen(
|
|
doctor: args['doctor'] as Doctor,
|
|
);
|
|
},
|
|
RouteNames.consultationTimeScreen: (context) {
|
|
final args =
|
|
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
|
|
return ConsultationTimeScreen(
|
|
doctor: args['doctor'] as Doctor,
|
|
selectedConsultation: args['selectedConsultation'] as ConsultationCenter,
|
|
);
|
|
},
|
|
RouteNames.consultationBookingScreen: (context) {
|
|
final args =
|
|
ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>;
|
|
return ConsultationBookingScreen(
|
|
doctor: args['doctor'] as Doctor,
|
|
selectedConsultation: args['selectedConsultation'] as ConsultationCenter,
|
|
selectedDate: args['selectedDate'] as DateTime,
|
|
selectedTime: args['selectedTime'] as String,
|
|
);
|
|
},
|
|
RouteNames.doctorDashbordScreen: (context) => const DoctorDashboardScreen(),
|
|
RouteNames.doctorHomeScreen: (context) => const DoctorDashboardHomeScreen(),
|
|
RouteNames.doctorPersonalProfileScreen: (context) =>
|
|
const DoctorPersonalProfileScreen(),
|
|
RouteNames.doctorServicesMenuScreen: (context) =>
|
|
const DoctorServicesMenuScreen(),
|
|
RouteNames.scheduleConsultationScreen: (context) =>
|
|
const ScheduleConsultationScreen(),
|
|
RouteNames.businessCenterScreen: (context) {
|
|
final controller = ModalRoute.of(context)!.settings.arguments
|
|
as ConsultationCenterController?;
|
|
return BusinessCenterScreen(
|
|
controller: controller ?? ConsultationCenterController(),
|
|
);
|
|
},
|
|
RouteNames.centerFeeAndDuration: (context) {
|
|
final controller = ModalRoute.of(context)!.settings.arguments
|
|
as ConsultationCenterController?;
|
|
return CenterFeeAndDurationScreen(
|
|
controller: controller ?? ConsultationCenterController(),
|
|
);
|
|
},
|
|
RouteNames.consultationTimeSlotScreen: (context) {
|
|
final controller = ModalRoute.of(context)!.settings.arguments
|
|
as ConsultationCenterController?;
|
|
return ConsultationTimeSlotScreen(
|
|
controller: controller ?? ConsultationCenterController(),
|
|
selectedDay: '',
|
|
);
|
|
},
|
|
RouteNames.consultationDayScreen: (context) {
|
|
final controller = ModalRoute.of(context)!.settings.arguments
|
|
as ConsultationCenterController?;
|
|
return ConsultationDayScreen(
|
|
controller: controller ?? ConsultationCenterController(),
|
|
);
|
|
},
|
|
RouteNames.loadingScreen: (context) => const LoadingScreen(),
|
|
RouteNames.splashScreen: (context) => const SplashScreen(),
|
|
};
|