app_pages.dart 8 KB
import 'package:doublefeel_flutter/app/modules/friends/bindings/friend_home_binding.dart';
import 'package:doublefeel_flutter/app/modules/friends/views/friend_home_page.dart';
import 'package:doublefeel_flutter/app/modules/membership_offer/bindings/membership_detail_binding.dart';
import 'package:doublefeel_flutter/app/modules/membership_offer/views/membership_detail_view.dart';
import 'package:doublefeel_flutter/core/config/app_environment_config.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/config/bindings/developer_options_binding.dart';
import '../modules/config/views/developer_options_view.dart';
import '../modules/config/views/token_login_view.dart';
import '../modules/config/views/user_information_view.dart';
import '../modules/devtools/bindings/route_list_binding.dart';
import '../modules/devtools/views/route_list_view.dart';
import '../modules/feedback/feedback_list/bindings/feedback_list_binding.dart';
import '../modules/feedback/feedback_list/views/feedback_list_view.dart';
import '../modules/friends/bindings/add_friend_binding.dart';
import '../modules/friends/bindings/friend_trend_binding.dart';
import '../modules/friends/views/add_friend_view.dart';
import '../modules/friends/views/friend_trend_view.dart';
import '../modules/help/bindings/help_binding.dart';
import '../modules/help/views/help_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/feedback/submit_feedback/bindings/submit_feedback_binding.dart';
import '../modules/feedback/submit_feedback/views/submit_feedback_view.dart';
import '../modules/user_onboarding/bindings/user_onboarding_binding.dart';
import '../modules/user_onboarding/views/user_onboarding_view.dart';
import '../modules/membership_offer/bindings/membership_offer_binding.dart';
import '../modules/membership_offer/views/membership_offer_view.dart';
import '../modules/watch_theme/bindings/watch_theme_binding.dart';
import '../modules/watch_theme/views/custom_watch_theme_preview_view.dart';
import '../modules/watch_theme/views/create_watch_theme_view.dart';
import '../modules/watch_theme/views/watch_theme_preview_view.dart';
import '../modules/watch_theme/views/watch_theme_view.dart';
import '../modules/account_settings/bindings/account_settings_binding.dart';
import '../modules/account_settings/views/account_settings_view.dart';
import '../modules/apple_health_upload_test/bindings/apple_health_upload_test_binding.dart';
import '../modules/apple_health_upload_test/views/apple_health_upload_test_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 = splash;
  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 = AppRoutes.splash;

  static final environmentConfig = Get.find<AppEnvironmentConfig>();

  static final routes = [
    GetPage(
      name: AppRoutes.splash,
      page: () => const SplashPage(),
      binding: SplashBinding(),
    ),
    GetPage(
      name: AppRoutes.login,
      page: () => const LoginView(),
      transition: Transition.fade,
      binding: LoginBinding(),
    ),
    GetPage(
      name: AppRoutes.phoneLogin,
      page: () => const PhoneLoginView(),
      binding: LoginBinding(),
    ),
    if (environmentConfig.isDebug)
      GetPage(
        name: AppRoutes.debugEnvironment,
        page: () => const DebugEnvironmentView(),
      ),
    GetPage(
      name: AppRoutes.home,
      page: () => const HomePage(),
      transition: Transition.fade,
      binding: HomeBinding(),
    ),
    GetPage(
      name: AppRoutes.webview,
      page: () => const WebviewPage(),
      binding: WebviewBinding(),
    ),
    GetPage(
      name: AppRoutes.userOnboarding,
      page: () => const UserOnboardingView(),
      binding: UserOnboardingBinding(),
    ),
    GetPage(
      name: Routes.MEMBERSHIP_OFFER,
      page: () => const MembershipOfferView(),
      binding: MembershipOfferBinding(),
    ),
    GetPage(
      name: Routes.MEMBERSHIP_DETAIL,
      page: () => const MembershipDetailView(),
      binding: MembershipDetailBinding(),
    ),
    GetPage(
      name: AppRoutes.bindPartner,
      page: () => const BindPartnerView(),
      binding: BindPartnerBinding(),
    ),
    GetPage(
      name: Routes.FRIEND_HOME,
      page: () => const FriendHomePage(),
      binding: FriendHomeBinding(),
    ),
    GetPage(
      name: Routes.ADD_FRIEND,
      page: () => const AddFriendView(),
      binding: AddFriendBinding(),
    ),
    GetPage(
      name: Routes.FRIEND_TREND,
      page: () => const FriendTrendView(),
      binding: FriendTrendBinding(),
    ),
    GetPage(
      name: Routes.DEVELOPER_OPTIONS,
      page: () => const DeveloperOptionsView(),
      binding: DeveloperOptionsBinding(),
    ),
    GetPage(
      name: Routes.USER_INFORMATION,
      page: () => const UserInformationView(),
    ),
    GetPage(
      name: Routes.TOKEN_LOGIN,
      page: () => const TokenLoginView(),
      binding: DeveloperOptionsBinding(),
    ),
    GetPage(
      name: Routes.ROUTE_LIST,
      page: () => const RouteListView(),
      binding: RouteListBinding(),
    ),
    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(),
    ),
    GetPage(
      name: _Paths.HELP,
      page: () => const HelpView(),
      binding: HelpBinding(),
    ),
    GetPage(
      name: _Paths.SUBMIT_FEEDBACK,
      page: () => const SubmitFeedbackView(),
      binding: SubmitFeedbackBinding(),
    ),
    GetPage(
      name: _Paths.FEEDBACK_LIST,
      page: () => const FeedbackListView(),
      binding: FeedbackListBinding(),
    ),
    GetPage(
      name: Routes.WATCH_THEME,
      page: () => const WatchThemeView(),
      binding: WatchThemeBinding(),
    ),
    GetPage(
      name: Routes.WATCH_THEME_PREVIEW,
      page: () => const WatchThemePreviewView(),
      binding: WatchThemePreviewBinding(),
    ),
    GetPage(
      name: Routes.WATCH_THEME_CREATE,
      page: () => const CreateWatchThemeView(),
      binding: CreateWatchThemeBinding(),
    ),
    GetPage(
      name: Routes.WATCH_THEME_CUSTOM_PREVIEW,
      page: () => const CustomWatchThemePreviewView(),
      binding: CustomWatchThemePreviewBinding(),
    ),
    GetPage(
      name: Routes.ACCOUNT_SETTINGS,
      page: () => const AccountSettingsView(),
      binding: AccountSettingsBinding(),
    ),
    GetPage(
      name: Routes.APPLE_HEALTH_UPLOAD_TEST,
      page: () => const AppleHealthUploadTestView(),
      binding: AppleHealthUploadTestBinding(),
    ),
  ];
}