in nav2-usability/scenario_code/lib/sign-in-routing/sign_in_routing_vrouter.dart [73:121]
Widget build(BuildContext context) {
return VRouter(
routes: [
VGuard(
beforeEnter: (vRedirector) async {
if (await _appState.auth.isSignedIn()) {
vRedirector.push('/');
}
},
stackedRoutes: [
VWidget(
path: '/signIn',
widget: Builder(
builder: (context) => SignInScreen(
onSignedIn: (Credentials credentials) async {
await _appState.signIn(credentials.username, credentials.password);
context.vRouter.push('/');
},
),
),
),
],
),
VGuard(
beforeEnter: (vRedirector) async {
if (!await _appState.auth.isSignedIn()) {
vRedirector.push('/signIn');
}
},
stackedRoutes: [
VWidget(
path: '/',
widget: Builder(
builder: (context) => HomeScreen(
onSignOut: () async {
await _appState.signOut();
context.vRouter.push('/signIn');
},
),
),
stackedRoutes: [
VWidget(path: 'books', widget: BooksListScreen()),
],
),
],
),
],
);
}