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<NyRouteGuard>? 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<NyRouteGuard>? 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;
}