seedkit_module_router 0.4.0 copy "seedkit_module_router: ^0.4.0" to clipboard
seedkit_module_router: ^0.4.0 copied to clipboard

Базовая навигация приложения экосистемы SeedKit

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';
0
likes
115
points
545
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Базовая навигация приложения экосистемы SeedKit

Repository

License

unknown (license)

Dependencies

auto_route, auto_route_generator, flutter, seedkit_bloc, seedkit_theme, seedkit_ui

More

Packages that depend on seedkit_module_router