You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.6KB

  1. import 'package:flutter/material.dart';
  2. import '../presentation/screens/login/login_page.dart';
  3. import '../presentation/screens/tabbar/tabbar.dart';
  4. import 'route_name.dart';
  5. class Routes {
  6. static Route buildRoutes(RouteSettings settings) {
  7. switch (settings.name) {
  8. case RouteName.loginPage:
  9. return buildRoute(settings, const LoginPage());
  10. case RouteName.dashboardPage:
  11. return buildRoute(settings, TabbarScreen());
  12. default:
  13. return _errorRoute();
  14. }
  15. }
  16. static Route login() {
  17. return PageRouteBuilder(
  18. pageBuilder: (context, animation, secondaryAnimation) => const LoginPage(),
  19. transitionsBuilder: (context, animation, secondaryAnimation, child) {
  20. return child;
  21. },
  22. transitionDuration: const Duration(seconds: 0),
  23. );
  24. }
  25. static Route dashboard() {
  26. return PageRouteBuilder(
  27. pageBuilder: (context, animation, secondaryAnimation) => TabbarScreen(),
  28. transitionsBuilder: (context, animation, secondaryAnimation, child) {
  29. return child;
  30. },
  31. transitionDuration: const Duration(seconds: 0),
  32. );
  33. }
  34. static Route homeRoute(RouteSettings settings) {
  35. return buildRoutes(settings);
  36. }
  37. static Route _errorRoute() {
  38. return MaterialPageRoute(builder: (_) {
  39. return const Scaffold(
  40. body: Center(
  41. child: Text(''),
  42. ),
  43. );
  44. });
  45. }
  46. static MaterialPageRoute buildRoute(RouteSettings settings, Widget builder) {
  47. return MaterialPageRoute(
  48. settings: settings,
  49. builder: (BuildContext context) => builder,
  50. );
  51. }
  52. }