news_getx/lib/routes/app_pages.dart

86 lines
2.7 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:news_getx/middlewares/router_auth.dart';
import 'package:news_getx/middlewares/router_welcome.dart';
import 'package:news_getx/modules/account/account_binding.dart';
import 'package:news_getx/modules/application/application_binding.dart';
import 'package:news_getx/modules/application/application_page.dart';
import 'package:news_getx/modules/bookmarks/bookmarks_binding.dart';
import 'package:news_getx/modules/category/category_binding.dart';
import 'package:news_getx/modules/category/category_page.dart';
import 'package:news_getx/modules/detail/detail_binding.dart';
import 'package:news_getx/modules/detail/detail_page.dart';
import 'package:news_getx/modules/main/main_binding.dart';
import 'package:news_getx/modules/not_found/not_found_binding.dart';
import 'package:news_getx/modules/not_found/not_found_page.dart';
import 'package:news_getx/modules/sign_in/sign_in_binding.dart';
import 'package:news_getx/modules/sign_in/sign_in_page.dart';
import 'package:news_getx/modules/sign_up/sign_up_binding.dart';
import 'package:news_getx/modules/sign_up/sign_up_page.dart';
import 'package:news_getx/modules/welcome/welcome_binding.dart';
import 'package:news_getx/modules/welcome/welcome_page.dart';
import 'package:news_getx/routes/app_observer.dart';
part './app_routes.dart';
abstract class AppPages {
static const Initial = AppRoutes.Initial;
static final NavigatorObserver observer = AppNavigatorObserver();
static List<String> history = [];
// 404
static final notFoundRoute = GetPage(
name: AppRoutes.NotFound,
page: () => NotFoundPage(),
binding: NotFoundBinding(),
);
// 页面
static final pages = [
// 免登陆
GetPage(
name: AppRoutes.Initial,
page: () => WelcomePage(),
binding: WelcomeBinding(),
middlewares: [RouteWelcomeMiddleware()],
),
// 登录页
GetPage(
name: AppRoutes.Signin,
page: () => SignInPage(),
binding: SignInBinding(),
),
// 注册页
GetPage(
name: AppRoutes.Signup,
page: () => SignUpPage(),
binding: SignUpBinding(),
),
// 应用页
GetPage(
name: AppRoutes.Application,
page: () => ApplicationPage(),
binding: ApplicationBinding(),
bindings: [
MainBinding(),
CategoryBinding(),
BookmarksBinding(),
AccountBinding(),
],
middlewares: [
RouteAuthMiddleware(),
],
),
// 详情页
GetPage(
name: AppRoutes.Detail,
page: () => DetailPage(),
binding: DetailBinding(),
middlewares: [
RouteAuthMiddleware(),
],
),
];
}