add method

NyRouterRoute add(
  1. RouteView routeView, {
  2. TransitionType? transitionType,
  3. @Deprecated('Use transitionType instead to specify the page transition type.\nE.g. TransitionType.fadeIn()') PageTransitionType? transition,
  4. @Deprecated('Use transitionType instead to specify the page transition settings.\nE.g. TransitionType.fadeIn(curve: Curves.easeIn)') PageTransitionSettings? pageTransitionSettings,
  5. List<RouteGuard>? routeGuards,
  6. bool initialRoute = false,
  7. bool unknownRoute = false,
  8. bool authenticatedRoute = false,
})

Add a new route with a RouteView.

Implementation

NyRouterRoute add(
  RouteView routeView, {
  TransitionType? transitionType,
  @Deprecated(
    'Use transitionType instead to specify the page transition type.\nE.g. TransitionType.fadeIn()',
  )
  PageTransitionType? transition,
  @Deprecated(
    'Use transitionType instead to specify the page transition settings.\nE.g. TransitionType.fadeIn(curve: Curves.easeIn)',
  )
  PageTransitionSettings? pageTransitionSettings,
  List<RouteGuard>? routeGuards,
  bool initialRoute = false,
  bool unknownRoute = false,
  bool authenticatedRoute = false,
}) {
  if (transitionType != null) {
    transition = transitionType.pageTransitionType;
    pageTransitionSettings = transitionType.pageTransitionSettings;
  }

  NyRouterRoute nyRouterRoute = NyRouterRoute(
    name: routeView.$1,
    view: (context) => routeView.$2(context),
    transitionType: transitionType,
    pageTransitionType: transition,
    pageTransitionSettings: pageTransitionSettings,
    routeGuards: routeGuards,
    initialRoute: initialRoute,
    unknownRoute: unknownRoute,
    authPage: authenticatedRoute,
  );
  _addRoute(nyRouterRoute, unknownRoute: unknownRoute);

  assert(
    _routeNameMappings.entries
            .where((element) => element.value.getInitialRoute() == true)
            .length <=
        1,
    'Your project has more than one initial route defined, please check your router file.',
  );

  return nyRouterRoute;
}