Widget build()

in nav2-usability/scenario_code/lib/sign-in-routing/router.dart [210:250]


  Widget build(BuildContext context) {
    final viewingSignIn = _appState.isViewingSignIn;
    final viewingBooksScreen = _appState.isViewingBooks;
    return Navigator(
      key: navigatorKey,
      pages: [
        if (viewingSignIn)
          MaterialPage(
            key: ValueKey('SignInScreen'),
            child: SignInScreen(
              onSignedIn: _handleSignedIn,
            ),
          )
        else ...[
          MaterialPage(
            key: ValueKey('HomeScreen'),
            child: HomeScreen(
              onGoToBooks: _handleGoToBooks,
              onSignOut: _handleSignOut,
            ),
          ),
          if (viewingBooksScreen)
            MaterialPage(
              key: ValueKey('BooksListPage'),
              child: BooksListScreen(),
            ),
        ]
      ],
      onPopPage: (route, result) {
        if (!route.didPop(result)) {
          return false;
        }

        if (_appState.isViewingBooks) {
          _appState.isViewingBooks = false;
        }

        return true;
      },
    );
  }