Initial commit

This commit is contained in:
jahongireshonqulov
2025-10-18 09:40:06 +05:00
commit 1bf3e41abe
352 changed files with 16315 additions and 0 deletions

176
lib/router/app_routes.dart Normal file
View File

@@ -0,0 +1,176 @@
// 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<NavigatorState>();
final localSource = sl<LocalSource>();
// final Chuck chuck = Chuck(
// showNotification: true,
// showInspectorOnShake: false,
// darkTheme: false,
// navigatorKey: rootNavigatorKey,
// );
class AppRoutes {
AppRoutes._();
static Route<dynamic> 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<AuthBloc>(
create: (_) => sl<AuthBloc>(),
child: const AuthPage(),
),
);
case Routes.signUp:
return MaterialPageRoute(
builder: (_) => BlocProvider<SignUpBloc>(
create: (_) => sl<SignUpBloc>(),
child: const SignUpPage(),
),
);
case Routes.authConfirm:
return MaterialPageRoute(
builder: (_) => BlocProvider<AuthConfirmBloc>(
create: (_) => sl<AuthConfirmBloc>(),
child: AuthConfirmPage(
argument: settings.arguments is AuthConfirmArgument
? settings.arguments as AuthConfirmArgument
: null,
),
),
);
case Routes.orderInfo:
return MaterialPageRoute(
builder: (_) => BlocProvider<OrderSingleBloc>(
create: (_) => sl<OrderSingleBloc>(),
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<CalculatorInfoBloc>(
create: (context) => sl<CalculatorInfoBloc>(),
child: CalculatorInfoPage(
argument: settings.arguments is CalculatorInfoArgument
? settings.arguments as CalculatorInfoArgument
: null,
),
),
);
case Routes.comment:
return MaterialPageRoute(
builder: (_) => BlocProvider<CommentBloc>(
create: (context) => sl<CommentBloc>(),
child: CommentPage(
argument: settings.arguments is CommentArgument
? settings.arguments as CommentArgument
: null,
),
),
);
case Routes.notification:
return MaterialPageRoute(
builder: (_) => BlocProvider<NotificationBloc>(
create: (context) => sl<NotificationBloc>(),
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<dynamic> 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<T>({required Widget child}) {
return PageRouteBuilder<T>(
pageBuilder: (_, __, ___) => child,
transitionsBuilder: (context, animation, secondaryAnimation, child) =>
FadeTransition(opacity: animation, child: child),
);
}
PageRouteBuilder buildPageWithNoTransition<T>({required Widget child}) {
return PageRouteBuilder<T>(
reverseTransitionDuration: Duration.zero,
transitionDuration: Duration.zero,
pageBuilder: (_, __, ___) => child,
transitionsBuilder: (context, animation, secondaryAnimation, child) =>
FadeTransition(opacity: animation, child: child),
);
}

View File

@@ -0,0 +1,16 @@
class Routes {
static const String initial = '/';
static const String language = '/language';
static const String auth = '/auth';
static const String signUp = '/signUp';
static const String authConfirm = '/authConfirm';
static const String home = '/home';
static const String profile = '/profile';
static const String main = '/main';
static const String calculation = '/calculation';
static const String calculationInfo = '/calculationInfo';
static const String orderInfo = '/orderInfo';
static const String comment = '/comment';
static const String notification = '/notification';
static const String image = '/image';
}