app_pages.dart 3.89 KB
import 'package:flutter/foundation.dart';
import 'package:get/get.dart';

import '../modules/bind_partner/bindings/bind_partner_binding.dart';
import '../modules/bind_partner/views/bind_partner_view.dart';
import '../modules/devtools/views/route_list_view.dart';
import '../modules/friends/bindings/add_friend_binding.dart';
import '../modules/friends/bindings/select_friend_binding.dart';
import '../modules/friends/views/add_friend_view.dart';
import '../modules/friends/views/select_friend_view.dart';
import '../modules/home/bindings/home_binding.dart';
import '../modules/home/views/home_page.dart';
import '../modules/login/bindings/login_binding.dart';
import '../modules/login/views/debug_environment_view.dart';
import '../modules/login/views/login_view.dart';
import '../modules/login/views/phone_login_view.dart';
import '../modules/premium/bindings/premium_activated_binding.dart';
import '../modules/premium/views/premium_activated_view.dart';
import '../modules/privacy_settings/bindings/privacy_settings_binding.dart';
import '../modules/privacy_settings/views/privacy_settings_view.dart';
import '../modules/purchase/bindings/purchase_binding.dart';
import '../modules/purchase/views/purchase_view.dart';
import '../modules/splash/bindings/splash_binding.dart';
import '../modules/splash/views/splash_page.dart';
import '../modules/user_onboarding/bindings/user_onboarding_binding.dart';
import '../modules/user_onboarding/views/user_onboarding_view.dart';
import '../modules/webview/bindings/webview_binding.dart';
import '../modules/webview/views/webview_page.dart';

part 'app_routes.dart';

/// Route path constants.
abstract final class AppRoutes {
  static const initial = Routes.ROUTE_LIST;
  static const splash = '/splash';
  static const login = '/login';
  static const phoneLogin = '/phoneLogin';
  static const debugEnvironment = '/debugEnvironment';
  static const userOnboarding = '/userOnboarding';
  static const bindPartner = '/bindPartner';
  static const home = '/home';
  static const webview = '/webview';
}

abstract final class AppPages {
  static const initialRoute = Routes.ROUTE_LIST;

  static final routes = [
    GetPage(
      name: AppRoutes.splash,
      page: () => const SplashPage(),
      binding: SplashBinding(),
    ),
    GetPage(
      name: AppRoutes.login,
      page: () => const LoginView(),
      binding: LoginBinding(),
    ),
    GetPage(
      name: AppRoutes.phoneLogin,
      page: () => const PhoneLoginView(),
      binding: LoginBinding(),
    ),
    if (kDebugMode)
      GetPage(
        name: AppRoutes.debugEnvironment,
        page: () => const DebugEnvironmentView(),
      ),
    GetPage(
      name: AppRoutes.home,
      page: () => const HomePage(),
      binding: HomeBinding(),
    ),
    GetPage(
      name: AppRoutes.webview,
      page: () => const WebviewPage(),
      binding: WebviewBinding(),
    ),
    GetPage(
      name: AppRoutes.userOnboarding,
      page: () => const UserOnboardingView(),
      binding: UserOnboardingBinding(),
    ),
    GetPage(
      name: AppRoutes.bindPartner,
      page: () => const BindPartnerView(),
      binding: BindPartnerBinding(),
    ),
    GetPage(
      name: Routes.ADD_FRIEND,
      page: () => const AddFriendView(),
      binding: AddFriendBinding(),
    ),
    GetPage(
      name: Routes.SELECT_FRIEND,
      page: () => const SelectFriendView(),
      binding: SelectFriendBinding(),
    ),
    GetPage(
      name: Routes.ROUTE_LIST,
      page: () => const RouteListView(),
      binding: PurchaseBinding(),
    ),
    GetPage(
      name: Routes.PURCHASE,
      page: () => const PurchaseView(),
      binding: PurchaseBinding(),
    ),
    GetPage(
      name: Routes.PREMIUM_ACTIVATED,
      page: () => const PremiumActivatedView(),
      binding: PremiumActivatedBinding(),
    ),
    GetPage(
      name: Routes.PRIVACY_SETTINGS,
      page: () => const PrivacySettingsView(),
      binding: PrivacySettingsBinding(),
    ),
  ];
}