2026-02-17 20:54:14 +01:00
|
|
|
import 'package:activity/activity.dart';
|
2025-11-17 00:15:31 +01:00
|
|
|
import 'package:auth/auth.dart';
|
|
|
|
|
import 'package:dashboard_shell/dashboard_builder.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
2025-12-03 13:42:14 +01:00
|
|
|
import 'package:get_it/get_it.dart';
|
2025-11-17 00:15:31 +01:00
|
|
|
import 'package:go_router/go_router.dart';
|
|
|
|
|
import 'package:home/home.dart';
|
|
|
|
|
import 'package:navigation/navigation.dart';
|
|
|
|
|
import 'package:notifications/notifications.dart';
|
2026-02-12 16:01:57 +01:00
|
|
|
import 'package:payments/payments.dart';
|
2025-11-17 00:15:31 +01:00
|
|
|
import 'package:profile/profile.dart';
|
2026-01-15 09:20:45 +01:00
|
|
|
import 'package:splash/splash.dart';
|
2025-11-17 00:15:31 +01:00
|
|
|
|
|
|
|
|
final GlobalKey<NavigatorState> rootNavigatorKey = GlobalKey<NavigatorState>();
|
|
|
|
|
|
|
|
|
|
late final GoRouter appRouter;
|
|
|
|
|
|
|
|
|
|
void configureAppRouter() {
|
|
|
|
|
appRouter = GoRouter(
|
|
|
|
|
navigatorKey: rootNavigatorKey,
|
2026-02-12 09:02:43 +01:00
|
|
|
initialLocation: AppRoutes.splash,
|
2025-12-03 13:42:14 +01:00
|
|
|
debugLogDiagnostics: true,
|
2025-11-17 00:15:31 +01:00
|
|
|
routes: [
|
2026-01-15 09:20:45 +01:00
|
|
|
GoRoute(
|
|
|
|
|
path: AppRoutes.splash,
|
|
|
|
|
name: 'splash',
|
|
|
|
|
pageBuilder: SplashBuilder().buildPage,
|
|
|
|
|
),
|
2025-11-17 00:15:31 +01:00
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.login,
|
2025-11-17 00:15:31 +01:00
|
|
|
name: 'login',
|
|
|
|
|
pageBuilder: LoginBuilder().buildPage,
|
|
|
|
|
),
|
2026-01-27 02:28:52 +03:00
|
|
|
GoRoute(
|
|
|
|
|
path: AppRoutes.scaTreezor,
|
|
|
|
|
name: 'sca_treezor',
|
|
|
|
|
pageBuilder: SCATreezorBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
|
2025-12-03 15:28:10 +01:00
|
|
|
GoRoute(
|
2025-12-03 16:24:04 +01:00
|
|
|
path: AppRoutes.signup,
|
2025-12-03 15:28:10 +01:00
|
|
|
name: 'signup',
|
|
|
|
|
pageBuilder: SignupBuilder().buildPage,
|
|
|
|
|
),
|
2025-11-17 00:15:31 +01:00
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.onboarding,
|
2025-11-17 00:15:31 +01:00
|
|
|
name: 'onboarding',
|
|
|
|
|
pageBuilder: OnboardingBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.linkPhone,
|
2025-12-09 10:08:36 +01:00
|
|
|
name: 'request_link_phone',
|
|
|
|
|
pageBuilder: RequestLinkPhoneBuilder().buildPage,
|
2025-11-17 00:15:31 +01:00
|
|
|
),
|
|
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.phoneCode,
|
2025-12-09 10:08:36 +01:00
|
|
|
name: 'Verify_link_phone_code',
|
|
|
|
|
pageBuilder: VerifyLinkPhoneCodeBuilder().buildPage,
|
2025-11-17 00:15:31 +01:00
|
|
|
),
|
|
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.recoverPassword,
|
2025-11-17 00:15:31 +01:00
|
|
|
name: 'recover_password',
|
2025-12-12 11:28:02 +01:00
|
|
|
pageBuilder: RequestRecoveryBuilder().buildPage,
|
2025-11-17 00:15:31 +01:00
|
|
|
),
|
2025-11-21 15:28:46 +01:00
|
|
|
GoRoute(
|
2026-01-20 07:37:29 +01:00
|
|
|
path: AppRoutes.deviceSetup,
|
|
|
|
|
name: 'device_setup',
|
|
|
|
|
pageBuilder: DeviceSetupBuilder().buildPage,
|
2025-11-21 15:28:46 +01:00
|
|
|
),
|
2026-02-12 16:01:57 +01:00
|
|
|
GoRoute(
|
|
|
|
|
path: AppRoutes.hipayWebView,
|
|
|
|
|
name: 'hipay_webview',
|
|
|
|
|
pageBuilder: const HiPayWebViewBuilder().buildPage,
|
|
|
|
|
),
|
2025-11-17 00:15:31 +01:00
|
|
|
StatefulShellRoute.indexedStack(
|
|
|
|
|
builder: (context, state, navShell) {
|
|
|
|
|
return DashboardBuilder().build(context, navShell);
|
|
|
|
|
},
|
|
|
|
|
branches: [
|
|
|
|
|
StatefulShellBranch(
|
|
|
|
|
routes: [
|
|
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.dashboardHome,
|
2025-11-17 00:15:31 +01:00
|
|
|
name: 'home',
|
|
|
|
|
pageBuilder: const HomeBuilder().buildPage,
|
2026-02-17 20:54:14 +01:00
|
|
|
routes: [
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'child-wallet/:childWalletId',
|
|
|
|
|
name: 'home_child_wallet',
|
|
|
|
|
pageBuilder: const ChildWalletBuilder().buildPage,
|
|
|
|
|
routes: [
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'allowance',
|
|
|
|
|
name: 'home_allowance',
|
|
|
|
|
pageBuilder: const AllowanceBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'deposit',
|
|
|
|
|
name: 'home_deposit',
|
|
|
|
|
pageBuilder: const DepositBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'lock-card',
|
|
|
|
|
name: 'home_lock_card',
|
|
|
|
|
pageBuilder: const LockCardBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'limits',
|
|
|
|
|
name: 'home_limits',
|
|
|
|
|
pageBuilder: const LimitsBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'goals',
|
|
|
|
|
name: 'home_goals',
|
|
|
|
|
pageBuilder: const GoalsBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'extract',
|
|
|
|
|
name: 'home_extract',
|
|
|
|
|
pageBuilder: const ExtractBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
2025-11-17 00:15:31 +01:00
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
StatefulShellBranch(
|
|
|
|
|
routes: [
|
|
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.dashboardActivity,
|
2025-11-17 00:15:31 +01:00
|
|
|
name: 'activity',
|
|
|
|
|
pageBuilder: const ActivityBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
StatefulShellBranch(
|
|
|
|
|
routes: [
|
|
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.dashboardNotifications,
|
2025-11-17 00:15:31 +01:00
|
|
|
name: 'notifications',
|
|
|
|
|
pageBuilder: const NotificationsBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
StatefulShellBranch(
|
|
|
|
|
routes: [
|
|
|
|
|
GoRoute(
|
2025-12-03 13:42:14 +01:00
|
|
|
path: AppRoutes.dashboardProfile,
|
2025-11-17 00:15:31 +01:00
|
|
|
name: 'profile',
|
|
|
|
|
pageBuilder: const ProfileBuilder().buildPage,
|
2026-02-12 14:32:57 +01:00
|
|
|
routes: [
|
2026-02-17 20:54:14 +01:00
|
|
|
GoRoute(
|
|
|
|
|
path: 'payout',
|
|
|
|
|
name: 'profile_payout',
|
|
|
|
|
pageBuilder: const PayoutBuilder().buildPage,
|
|
|
|
|
),
|
2026-02-12 14:32:57 +01:00
|
|
|
GoRoute(
|
|
|
|
|
path: 'settings',
|
|
|
|
|
name: 'profile_settings',
|
|
|
|
|
pageBuilder: const ProfileSettingsBuilder().buildPage,
|
2026-02-15 14:05:08 +01:00
|
|
|
routes: [
|
|
|
|
|
GoRoute(
|
|
|
|
|
path: 'payment-methods',
|
|
|
|
|
name: 'profile_payment_methods',
|
|
|
|
|
pageBuilder: const PaymentMethodsBuilder().buildPage,
|
|
|
|
|
),
|
|
|
|
|
],
|
2026-02-12 14:32:57 +01:00
|
|
|
),
|
|
|
|
|
],
|
2025-11-17 00:15:31 +01:00
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
GetIt.I<NavigationContract>().setRouter(appRouter);
|
|
|
|
|
}
|