// import 'package:chuck_interceptor/chuck_interceptor.dart'; import 'package:cargocalculaterapp/features/auth/presentation/bloc/auth_confirm/auth_confirm_bloc.dart'; import 'package:cargocalculaterapp/features/auth/presentation/bloc/sign_up/sign_up_bloc.dart'; import 'package:cargocalculaterapp/features/auth/presentation/pages/auth_confirm/auth_confirm_page.dart'; import 'package:cargocalculaterapp/features/auth/presentation/pages/sign_up/sign_up_page.dart'; import 'package:cargocalculaterapp/features/calculator/presentation/bloc/calculator_info/calculator_info_bloc.dart'; import 'package:cargocalculaterapp/features/calculator/presentation/pages/calculator_info/calculator_info_page.dart'; import 'package:cargocalculaterapp/features/home/presentation/bloc/notification/notification_bloc.dart'; import 'package:cargocalculaterapp/features/home/presentation/pages/comment/comment_page.dart'; import 'package:cargocalculaterapp/features/main/presentation/pages/main_page.dart'; import 'package:cargocalculaterapp/features/profile/presentation/pages/profile_page.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../core/local_source/local_source.dart'; import '../features/auth/presentation/bloc/auth/auth_bloc.dart'; import '../features/auth/presentation/pages/auth/auth_page.dart'; import '../features/auth/presentation/pages/auth_confirm/argument/auth_confirm_argument.dart'; import '../features/calculator/presentation/arguments/calculator_info_argument.dart'; import '../features/home/presentation/bloc/comment/comment_bloc.dart'; import '../features/home/presentation/bloc/order_single/order_single_bloc.dart'; import '../features/home/presentation/pages/arguments/comment_argument.dart'; import '../features/home/presentation/pages/arguments/image_page_argument.dart'; import '../features/home/presentation/pages/arguments/order_info_argument.dart'; import '../features/home/presentation/pages/home_page.dart'; import '../features/home/presentation/pages/image/image_page.dart'; import '../features/home/presentation/pages/notification/notification_page.dart'; import '../features/home/presentation/pages/order_info/order_info_page.dart'; import '../features/initial/pages/initial_page.dart'; import '../features/language/presentation/argument/language_argument.dart'; import '../features/language/presentation/pages/language/app_language_page.dart'; import '../injector_container.dart'; import 'name_routes.dart'; final rootNavigatorKey = GlobalKey(); final localSource = sl(); // final Chuck chuck = Chuck( // showNotification: true, // showInspectorOnShake: false, // darkTheme: false, // navigatorKey: rootNavigatorKey, // ); class AppRoutes { AppRoutes._(); static Route onGenerateRoute(RouteSettings settings) { if (kDebugMode) { print("route : ${settings.name}"); } switch (settings.name) { case Routes.initial: return buildPageWithNoTransition(child: const InitialPage()); case Routes.language: return buildPageWithNoTransition( child: AppLanguagePage( languageArgument: settings.arguments is LanguageArgument ? settings.arguments as LanguageArgument : null, ), ); case Routes.auth: return MaterialPageRoute( builder: (_) => BlocProvider( create: (_) => sl(), child: const AuthPage(), ), ); case Routes.signUp: return MaterialPageRoute( builder: (_) => BlocProvider( create: (_) => sl(), child: const SignUpPage(), ), ); case Routes.authConfirm: return MaterialPageRoute( builder: (_) => BlocProvider( create: (_) => sl(), child: AuthConfirmPage( argument: settings.arguments is AuthConfirmArgument ? settings.arguments as AuthConfirmArgument : null, ), ), ); case Routes.orderInfo: return MaterialPageRoute( builder: (_) => BlocProvider( create: (_) => sl(), child: OrderInfoPage( argument: settings.arguments is OrderInfoArgument ? settings.arguments as OrderInfoArgument : null, ), ), ); case Routes.main: return MaterialPageRoute(builder: (_) => const MainPage()); case Routes.calculationInfo: return MaterialPageRoute( builder: (_) => BlocProvider( create: (context) => sl(), child: CalculatorInfoPage( argument: settings.arguments is CalculatorInfoArgument ? settings.arguments as CalculatorInfoArgument : null, ), ), ); case Routes.comment: return MaterialPageRoute( builder: (_) => BlocProvider( create: (context) => sl(), child: CommentPage( argument: settings.arguments is CommentArgument ? settings.arguments as CommentArgument : null, ), ), ); case Routes.notification: return MaterialPageRoute( builder: (_) => BlocProvider( create: (context) => sl(), child: const NotificationPage(), ), ); case Routes.image: return MaterialPageRoute( builder: (_) => ImagePage( argument: settings.arguments is ImagePageArgument ? settings.arguments as ImagePageArgument : null, ), ); default: return buildPageWithNoTransition(child: const InitialPage()); } } static Route onShellGenerateRoute(RouteSettings settings) { if (kDebugMode) { print("route shell : ${settings.name}"); } switch (settings.name) { case Routes.initial: return buildPageWithDefaultTransition(child: const HomePage()); case Routes.home: return buildPageWithDefaultTransition(child: const HomePage()); case Routes.profile: return buildPageWithDefaultTransition(child: const ProfilePage()); default: return buildPageWithDefaultTransition(child: const HomePage()); } } } PageRouteBuilder buildPageWithDefaultTransition({required Widget child}) { return PageRouteBuilder( pageBuilder: (_, __, ___) => child, transitionsBuilder: (context, animation, secondaryAnimation, child) => FadeTransition(opacity: animation, child: child), ); } PageRouteBuilder buildPageWithNoTransition({required Widget child}) { return PageRouteBuilder( reverseTransitionDuration: Duration.zero, transitionDuration: Duration.zero, pageBuilder: (_, __, ___) => child, transitionsBuilder: (context, animation, secondaryAnimation, child) => FadeTransition(opacity: animation, child: child), ); }