Widget build()

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()),
              ],
            ),
          ],
        ),
      ],
    );
  }