// 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, OnInit, Inject } from '@angular/core'; import { AmplifyService } from '../../../providers/amplify.service'; import { AuthState } from '../../../providers/auth.state'; import { labelMap } from '../common'; import { auth } from '../../../assets/data-test-attributes'; const template = `
{{ this.amplifyService.i18n().get('Confirm Sign up') }}
{{ this.amplifyService.i18n().get('Lost your code?') }} {{ this.amplifyService.i18n().get('Resend Code') }}
{{ this.amplifyService.i18n().get(errorMessage) }}
×
`; @Component({ selector: 'amplify-auth-confirm-sign-up-core', template, }) export class ConfirmSignUpComponentCore implements OnInit { _authState: AuthState; _show: boolean; _usernameAttributes: string = 'username'; username: string; code: string; errorMessage: string; protected logger: any; constructor(@Inject(AmplifyService) public amplifyService: AmplifyService) { this.logger = this.amplifyService.logger('ConfirmSignUpComponent'); } @Input() set data(data: any) { this.hide = data.hide ? data.hide : this.hide; this._authState = data.authState; this._show = data.authState.state === 'confirmSignUp'; this.username = data.authState.user ? data.authState.user.username || '' : ''; } @Input() hide: string[] = []; @Input() set authState(authState: AuthState) { this._authState = authState; this._show = authState.state === 'confirmSignUp'; this.username = authState.user ? authState.user.username || '' : ''; } @Input() set usernameAttributes(usernameAttributes: string) { this._usernameAttributes = usernameAttributes; } ngOnInit() { if (!this.amplifyService.auth()) { throw new Error('Auth module not registered on AmplifyService provider'); } } shouldHide(comp) { return this.hide.filter(item => item === comp).length > 0; } setUsername(username: string) { this.username = username; } setCode(code: string) { this.code = code; } onConfirm() { this.amplifyService .auth() .confirmSignUp(this.username, this.code) .then(() => this.logger.info('confirm success')) .catch(err => this._setError(err)); } onResend() { this.amplifyService .auth() .resendSignUp(this.username) .then(() => this.logger.info('code resent')) .catch(err => this._setError(err)); } onSignIn() { this.onAlertClose(); this.amplifyService.setAuthState({ state: 'signIn', user: null }); } onAlertClose() { this._setError(null); } _setError(err) { if (!err) { this.errorMessage = null; return; } this.errorMessage = err.message || err; } getUsernameLabel() { return ( labelMap[this._usernameAttributes as string] || this._usernameAttributes ); } }