kirakira/lib/presentation/routes/app_router.dart

48 lines
1.4 KiB
Dart

import "package:auto_route/auto_route.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:smol_mail/presentation/routes/home_guard.dart";
import "package:smol_mail/presentation/routes/identity_guard.dart";
import "app_router.gr.dart";
@AutoRouterConfig(replaceInRouteName: "Screen,Route")
class AppRouter extends RootStackRouter {
final WidgetRef ref;
AppRouter(this.ref);
@override
List<AutoRoute> get routes => [
AutoRoute(
page: OnboardingRoute.page,
path: "/",
initial: true,
guards: [HomeGuard(ref)],
),
AutoRoute(
page: HomeRoute.page,
path: "/home",
guards: [IdentityGuard(ref)],
children: [
AutoRoute(page: InboxRoute.page, path: "inbox", initial: true),
AutoRoute(page: ContactsRoute.page, path: "contacts"),
AutoRoute(page: SettingsRoute.page, path: "settings"),
],
),
AutoRoute(
page: MessageDetailRoute.page,
path: "/message",
guards: [IdentityGuard(ref)],
),
AutoRoute(
page: ComposeRoute.page,
path: "/compose",
guards: [IdentityGuard(ref)],
),
AutoRoute(
page: ContactDetailRoute.page,
path: "/contact",
guards: [IdentityGuard(ref)],
),
];
}