forked from eatvio/eatvio_app
54 lines
2.6 KiB
Dart
54 lines
2.6 KiB
Dart
import 'package:eatvio_app/core/firebase_api.dart';
|
|
import 'package:eatvio_app/core/locator_service.dart';
|
|
import 'package:eatvio_app/core/routing/route_constants.dart';
|
|
import 'package:eatvio_app/features/auth/entities/auth_result_entity.dart';
|
|
import 'package:eatvio_app/features/auth/presentation/pages/auth_screen.dart';
|
|
import 'package:eatvio_app/features/auth/presentation/pages/forget_password_screen.dart';
|
|
import 'package:eatvio_app/features/auth/presentation/pages/register_via_social_screen.dart';
|
|
import 'package:eatvio_app/features/auth/presentation/pages/scan_qr_code_screen.dart';
|
|
import 'package:eatvio_app/features/registration/presentation/pages/registration_screen.dart';
|
|
import 'package:eatvio_app/features/registration/presentation/pages/verify_screen.dart';
|
|
import 'package:eatvio_app/features/registration/presentation/pages/verify_email_screen.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
|
|
/// Маршруты для аутентификации
|
|
class AuthRoutes {
|
|
/// Создание маршрутов аутентификации
|
|
static List<RouteBase> createRoutes() {
|
|
return [
|
|
GoRoute(
|
|
path: RouteConstants.authScreen,
|
|
name: 'authScreen',
|
|
builder: (context, state) => const AuthScreen(),
|
|
redirect: (context, state) {
|
|
sl<FirebaseApi>().registerAnonymousPushToken();
|
|
return null;
|
|
},
|
|
routes: [
|
|
GoRoute(path: RouteConstants.registrationScreen, name: 'registrationScreen', builder: (context, state) => const RegistrationScreen()),
|
|
GoRoute(
|
|
path: RouteConstants.forgetPasswordScreen,
|
|
name: 'forgetPasswordScreen',
|
|
builder: (context, state) => ForgetPasswordScreen(isAuth: state.extra as bool),
|
|
),
|
|
GoRoute(path: RouteConstants.scanQRCodeScreen, name: 'scanQRCodeScreen', builder: (context, state) => const ScanQRCodeScreen()),
|
|
],
|
|
),
|
|
GoRoute(
|
|
path: RouteConstants.verifyScreen,
|
|
name: 'verifyScreen',
|
|
builder: (context, state) => VerifyScreen(passKey: state.extra as String),
|
|
),
|
|
GoRoute(path: RouteConstants.verifyEmailScreen, name: 'verifyEmailScreen', builder: (context, state) => const VerifyEmailScreen()),
|
|
GoRoute(
|
|
path: RouteConstants.registerViaSocialScreen,
|
|
name: 'registerViaSocialScreen',
|
|
builder: (context, state) {
|
|
final extra = state.extra as Map<String, dynamic>?;
|
|
return RegisterViaSocialScreen(authResult: extra?['authResult'] as AuthResultEntity?, provider: extra?['provider'] as String?);
|
|
},
|
|
),
|
|
];
|
|
}
|
|
}
|