// tslint:disable
/*
* Copyright 2017-2018 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.
*/
// tslint:enable
import { Component, Input } from '@angular/core';
import { AmplifyService, AuthState } from '../../../providers';
const template = `
`;
@Component({
selector: 'amplify-auth-confirm-sign-in-core',
template
})
export class ConfirmSignInComponentCore {
_authState: AuthState;
_show: boolean;
code: string;
errorMessage: string;
amplifyService: AmplifyService;
constructor(amplifyService: AmplifyService) {
this.amplifyService = amplifyService;
}
@Input()
set data(data: any) {
this._authState = data.authState;
this._show = data.authState.state === 'confirmSignIn';
}
@Input()
set authState(authState: AuthState) {
this._authState = authState;
this._show = authState.state === 'confirmSignIn';
}
setCode(code: string) {
this.code = code;
}
onConfirm() {
const { user } = this._authState;
const { challengeName } = user;
const mfaType = challengeName === 'SOFTWARE_TOKEN_MFA' ? challengeName : null;
this.amplifyService.auth()
.confirmSignIn(
user,
this.code,
mfaType
)
.then(() => {
this.amplifyService.setAuthState({ state: 'signedIn', user });
})
.catch(err => this._setError(err));
}
onSignIn() {
this.amplifyService.setAuthState({ state: 'signIn', user: null });
}
onAlertClose() {
this._setError(null);
}
_setError(err) {
if (!err) {
this.errorMessage = null;
return;
}
this.errorMessage = err.message || err;
}
}