initRouter method
Implementation
@override
void initRouter({
String? initialLocation,
required List<g.RouteBase> routes,
required GlobalKey<NavigatorState> rootNavigatorKey,
}) {
if (_initialized) {
throw StateError('Router already initialized');
}
final allRoutes = _finalizeRoutes([...routes, ..._initialRoutes]);
_routingConfig = RoutingConfigNotifier(
allRoutes,
redirect: _composedRedirect,
onEnter: onEnter,
redirectLimit: redirectLimit,
);
final observers = vyuh.plugins
.whereType<RouteObservers>()
.expand((p) => p.observers)
.toList();
_router.dispose();
_router = GoRouter.routingConfig(
initialLocation: initialLocation ?? '/',
routingConfig: _routingConfig,
navigatorKey: rootNavigatorKey,
debugLogDiagnostics: kDebugMode,
observers: observers,
refreshListenable: refreshListenable,
onException: onException,
errorPageBuilder: onException == null ? errorPageBuilder : null,
extraCodec: extraCodec,
restorationScopeId: restorationScopeId,
requestFocus: requestFocus,
routerNeglect: routerNeglect,
overridePlatformDefaultLocation: overridePlatformDefaultLocation,
errorBuilder: onException != null || errorPageBuilder != null
? null
: errorBuilder ?? _buildError,
);
_stopWatchingRedirects?.call();
_stopWatchingRedirects = watchRedirectTriggers(() => _router.refresh());
_initialized = true;
}