From 4f4ef820494b2f4bf0496896bdff72ced120356d Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 4 Apr 2018 09:19:28 -0400 Subject: [PATCH] share login component with jslib --- jslib | 2 +- src/popup2/accounts/login.component.ts | 61 +++++--------------------- tsconfig.json | 5 ++- 3 files changed, 15 insertions(+), 53 deletions(-) diff --git a/jslib b/jslib index 579f970323e..7b4d0a71de6 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 579f970323ea0bbc0d26f17cb9454c142f47bf6a +Subproject commit 7b4d0a71de640ce14c3c446bfd2e8ce36635db3f diff --git a/src/popup2/accounts/login.component.ts b/src/popup2/accounts/login.component.ts index 41c2d82b1ee..c96b5d73c2e 100644 --- a/src/popup2/accounts/login.component.ts +++ b/src/popup2/accounts/login.component.ts @@ -1,70 +1,29 @@ import * as template from './login.component.html'; -import { - Component, - ComponentFactoryResolver, - ViewChild, - ViewContainerRef, -} from '@angular/core'; +import { Component } from '@angular/core'; import { Router } from '@angular/router'; import { ToasterService } from 'angular2-toaster'; import { Angulartics2 } from 'angulartics2'; -import { AuthResult } from 'jslib/models/domain/authResult'; - import { AuthService } from 'jslib/abstractions/auth.service'; import { I18nService } from 'jslib/abstractions/i18n.service'; import { SyncService } from 'jslib/abstractions/sync.service'; +import { LoginComponent as BaseLoginComponent } from 'jslib/angular/components/login.component'; + @Component({ selector: 'app-login', template: template, }) -export class LoginComponent { - email: string = ''; - masterPassword: string = ''; - showPassword: boolean = false; - formPromise: Promise; - - constructor(private authService: AuthService, private router: Router, - private analytics: Angulartics2, private toasterService: ToasterService, - private i18nService: I18nService, private syncService: SyncService) { } - - async submit() { - if (this.email == null || this.email === '') { - this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), - this.i18nService.t('emailRequired')); - return; - } - if (this.email.indexOf('@') === -1) { - this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), - this.i18nService.t('invalidEmail')); - return; - } - if (this.masterPassword == null || this.masterPassword === '') { - this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), - this.i18nService.t('masterPassRequired')); - return; - } - - try { - this.formPromise = this.authService.logIn(this.email, this.masterPassword); - const response = await this.formPromise; - if (response.twoFactor) { - this.analytics.eventTrack.next({ action: 'Logged In To Two-step' }); - this.router.navigate(['2fa']); - } else { - this.syncService.fullSync(true); - this.analytics.eventTrack.next({ action: 'Logged In' }); - this.router.navigate(['vault']); - } - } catch { } +export class LoginComponent extends BaseLoginComponent { + constructor(authService: AuthService, router: Router, + analytics: Angulartics2, toasterService: ToasterService, + i18nService: I18nService, syncService: SyncService) { + super(authService, router, analytics, toasterService, i18nService, syncService); } - togglePassword() { - this.analytics.eventTrack.next({ action: 'Toggled Master Password on Login' }); - this.showPassword = !this.showPassword; - document.getElementById('masterPassword').focus(); + settings() { + // TODO: navigate to settings } } diff --git a/tsconfig.json b/tsconfig.json index f55dd15b866..f56ee79f101 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,10 @@ ], "baseUrl": ".", "paths": { - "jslib/*": [ "jslib/src/*" ] + "jslib/*": [ "jslib/src/*" ], + "@angular/*": [ "node_modules/@angular/*" ], + "angular2-toaster": [ "node_modules/angular2-toaster" ], + "angulartics2": [ "node_modules/angulartics2" ] } }, "exclude": [