seedkit_module_router

Пакет базовой навигации для SeedKit-приложений.

Интеграция

  • Создай router приложения от SeedKitRouter:
@AutoRouterConfig(replaceInRouteName: 'Screen|Page,Route')
class AppRouter extends SeedKitRouter {
  @override
  List<AutoRoute> get routes => [
    BaseAdaptiveRoute(
      path: '/',
      page: SplashRoute.page,
    ),
  ];

  @override
  List<AutoRouteGuard> get guards => [];
}
  • В MaterialApp.router передай config и observers:
MaterialApp.router(
  routerConfig: router.config(
    navigatorObservers: () => [
      NavigationLoggerObserver(),
    ],
  ),
);

Использование

  • Router-класс с @AutoRouterConfig, который наследуется от SeedKitRouter.
import 'package:seedkit_template/src/core/router/app_router.gr.dart';
import 'package:seedkit_module_router/seedkit_module_router.dart';
import 'package:seedkit_module_router/seedkit_module_router_to.dart';

final router = BaseRouter();

@AutoRouterConfig(replaceInRouteName: 'Screen|Page,Route')
class BaseRouter extends SeedKitRouter {
  @override
  List<AutoRoute> get routes => [
    BaseAdaptiveRoute(
      path: '/',
      page: HomeRoute.page,
    ),
  ];

  @override
  List<AutoRouteGuard> get guards => [];
}
  • Страницы с аннотацией @RoutePage().
import 'package:seedkit_module_router/seedkit_module_router_to.dart';

@RoutePage()
class HomePage extends StatelessWidget {
  const HomePage({super.key});
}
  • Команда запускается из директории, где лежит нужный pubspec.yaml:
dart run seedkit_module_router:generate
  • Импорт generated-файла вида app_router.gr.dart рядом с файлом класса с анотацией @AutoRouterConfig.

  • SeedKitRouter — базовый абстрактный router

  • BottomSheetRouteBuilder, DialogRouteBuilder, DrawerPageRoute, DropDialogArguments, DropDialogRouteBuilder.

  • ContextRouterExtension — быстрый доступ к router из BuildContext.

  • DraggableBottomSheetWidget — виджет анимации перетаскивания шторки с дальнейшим закрытием.

  • DropDialogWidget — виджет-сборщик позиционного диалогового окна.

  • NavigationLoggerObserver — observer логирования навигации.

  • BaseAdaptiveRoute — базовый adaptive route с системными свайпами.

  • BaseCustomRoute — базовый custom route для расширенной анимации страницы.

Импорты

import 'package:seedkit_module_router/seedkit_module_router.dart';
import 'package:seedkit_module_router/seedkit_module_router_builders.dart';
import 'package:seedkit_module_router/seedkit_module_router_context.dart';
import 'package:seedkit_module_router/seedkit_module_router_draggable.dart';
import 'package:seedkit_module_router/seedkit_module_router_drop_dialog.dart';
import 'package:seedkit_module_router/seedkit_module_router_logger.dart';
import 'package:seedkit_module_router/seedkit_module_router_models.dart';
import 'package:seedkit_module_router/seedkit_module_router_to.dart';