/* * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0/ * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ import React from 'react'; import { View } from 'react-native'; import { Auth, I18n, Logger, JS } from 'aws-amplify'; import { AmplifyButton, FormField, LinkCell, Header, ErrorRow, SignedOutMessage, Wrapper, } from '../AmplifyUI'; import AuthPiece, { IAuthPieceProps, IAuthPieceState } from './AuthPiece'; import { AmplifyThemeType } from '../AmplifyTheme'; import TEST_ID from '../AmplifyTestIDs'; const logger = new Logger('ConfirmSignIn'); interface IConfirmSignInProps extends IAuthPieceProps {} interface IConfirmSignInState extends IAuthPieceState { code?: string; } export default class ConfirmSignIn extends AuthPiece< IConfirmSignInProps, IConfirmSignInState > { constructor(props: IConfirmSignInProps) { super(props); this._validAuthStates = ['confirmSignIn']; this.state = { code: null, error: null, }; this.confirm = this.confirm.bind(this); this.checkContact = this.checkContact.bind(this); } confirm() { const user = this.props.authData; const { code } = this.state; logger.debug('Confirm Sign In for ' + user.username); Auth.confirmSignIn(user, code) .then(data => this.checkContact(user)) .catch(err => this.error(err)); } showComponent(theme: AmplifyThemeType) { return (
{I18n.get('Confirm Sign In')}
this.setState({ code: text })} label={I18n.get('Confirmation Code')} placeholder={I18n.get('Enter your confirmation code')} required={true} testID={TEST_ID.AUTH.CONFIRMATION_CODE_INPUT} /> this.changeState('signIn')} testID={TEST_ID.AUTH.BACK_TO_SIGN_IN_BUTTON} > {I18n.get('Back to Sign In')} {this.state.error}
); } }