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';