AuthRoute constructor

AuthRoute({
  1. required AuthenticationStateNotifier authenticationStateNotifier,
  2. required FeatureNavigationConfiguration defaultUnauthorizedFeature,
  3. required String path,
  4. String? name,
  5. Widget builder(
    1. BuildContext,
    2. GoRouterState
    )?,
  6. Page pageBuilder(
    1. BuildContext,
    2. GoRouterState
    )?,
  7. GlobalKey<NavigatorState>? parentNavigatorKey,
  8. ExitCallback? onExit,
  9. List<RouteBase> routes = const <RouteBase>[],
})

Implementation

AuthRoute({
  required AuthenticationStateNotifier authenticationStateNotifier,
  required FeatureNavigationConfiguration defaultUnauthorizedFeature,
  required super.path,
  super.name,
  Widget Function(BuildContext, GoRouterState)? builder,
  Page<dynamic> Function(BuildContext, GoRouterState)? pageBuilder,
  super.parentNavigatorKey,
  super.onExit,
  super.routes,
}) : super(
       pageBuilder:
           pageBuilder ??
           (builder != null
               ? (context, state) => NoTransitionPage<void>(key: state.pageKey, child: builder(context, state))
               : null),
       redirect: (context, state) async {
         final isAuthenticated = await authenticationStateNotifier.isAuthenticated;
         if (!isAuthenticated) {
           return defaultUnauthorizedFeature.defaultLevel2Path;
         }
         return null;
       },
     );