Widget builder()

in packages/amplify_authenticator/lib/src/screens/authenticator_screen.dart [61:107]


  Widget builder(
    BuildContext context,
    AuthenticatorState state,
    AuthStringResolver stringResolver,
  ) {
    final Size screenSize = MediaQuery.of(context).size;
    final bool isDesktop =
        screenSize.width > AuthenticatorContainerConstants.landScapeView;
    final double containerWidth;

    if (isDesktop) {
      containerWidth = AuthenticatorContainerConstants.mediumWidth;
    } else {
      containerWidth = AuthenticatorContainerConstants.smallWidth;
    }

    const signInUpTabs = [AuthenticatorStep.signIn, AuthenticatorStep.signUp];
    final Widget child;
    switch (step) {
      case AuthenticatorStep.onboarding:
      case AuthenticatorStep.signIn:
        child = const AuthenticatorTabView(tabs: signInUpTabs, initialIndex: 0);
        break;
      case AuthenticatorStep.signUp:
        child = const AuthenticatorTabView(tabs: signInUpTabs, initialIndex: 1);
        break;
      case AuthenticatorStep.confirmSignUp:
      case AuthenticatorStep.confirmSignInMfa:
      case AuthenticatorStep.confirmSignInNewPassword:
      case AuthenticatorStep.resetPassword:
      case AuthenticatorStep.confirmResetPassword:
      case AuthenticatorStep.verifyUser:
      case AuthenticatorStep.confirmVerifyUser:
        child = _FormWrapperView(step: step);
        break;
      case AuthenticatorStep.loading:
        throw StateError('Invalid step: $this');
    }

    return Container(
      constraints: BoxConstraints(maxWidth: containerWidth),
      color: AmplifyTheme.of(context).backgroundPrimary,
      child: SafeArea(
        child: child,
      ),
    );
  }