2025-09-06 19:21:52 +05:30

88 lines
3.1 KiB
Dart

import 'package:base_project/routes/route_names.dart';
import 'package:base_project/view/auth/get_otp.dart';
import 'package:base_project/view/auth/login.dart';
import 'package:base_project/view/auth/register_acc.dart';
import 'package:base_project/view/auth/signup.dart';
import 'package:base_project/view/auth/verify_otp.dart';
import 'package:base_project/view/dashboard/home.dart';
import 'package:base_project/view/dashboard/profile/change_password.dart';
import 'package:base_project/view/dashboard/profile/profile.dart';
import 'package:base_project/view/splash_screen.dart';
import 'package:base_project/view/system_parameters/system_parameters.dart';
import 'package:flutter/material.dart';
class AppRoutes {
static Route<dynamic> generateRoutes(RouteSettings routeSettings) {
switch (routeSettings.name) {
case RouteNames.splashView:
return MaterialPageRoute(
builder: (context) => const SplashScreen(),
);
case RouteNames.loginView:
return MaterialPageRoute(
builder: (context) => const LoginView(),
);
case RouteNames.signUpView:
return MaterialPageRoute(
builder: (context) => const SignupView(),
);
case RouteNames.getOtpView:
return MaterialPageRoute(
builder: (context) => GetOtpView(),
);
case RouteNames.verifyOtpView:
final args = routeSettings.arguments;
String? email;
if (args is Map) {
email = args['email']?.toString();
}
return MaterialPageRoute(
builder: (context) => VerifyOtpView(email: email),
);
case RouteNames.registerAccView:
return MaterialPageRoute(
builder: (context) => const RegisterAccView(),
);
case RouteNames.homeView:
return MaterialPageRoute(
builder: (context) => const HomeView(),
);
case RouteNames.profileView:
return MaterialPageRoute(
builder: (context) => const ProfileView(),
);
// case RouteNames.editProfileView:
// return MaterialPageRoute(
// builder: (context) => const EditProfile(),
// );
case RouteNames.changePasswordView:
return MaterialPageRoute(
builder: (context) => ChangePassword(),
);
case RouteNames.systemParamsView:
return MaterialPageRoute(
builder: (context) => const SystemParametersView(),
);
default:
return MaterialPageRoute(
builder: (context) {
print("Checking Default route");
// SplashViewModel().checkNavigation(context);
// return const Scaffold(
// body: Center(
// child: Text("No route defined"),
// ),
// );
// If we're on System Parameters, do not auto-redirect
if (routeSettings.name == RouteNames.systemParamsView) {
return const SystemParametersView();
}
// Fallback to Splash so SplashViewModel can decide (login vs home)
return const SplashScreen();
},
);
}
}
}