import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core'; import {FormBuilder, FormGroup, Validators} from '@angular/forms'; import {CustomErrorStateMatcher} from '@app/_helpers'; import {AuthService} from '@app/_services'; import {Router} from '@angular/router'; @Component({ selector: 'app-auth', templateUrl: './auth.component.html', styleUrls: ['./auth.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) export class AuthComponent implements OnInit { keyForm: FormGroup; submitted: boolean = false; loading: boolean = false; matcher = new CustomErrorStateMatcher(); constructor( private authService: AuthService, private formBuilder: FormBuilder, private router: Router ) { } async ngOnInit(): Promise { this.keyForm = this.formBuilder.group({ key: ['', Validators.required], }); if (this.authService.privateKey !== undefined) { const setKey = await this.authService.setKey(this.authService.privateKey); if (setKey && this.authService.sessionToken !== undefined) { this.authService.setState('Click button to log in'); } } } get keyFormStub(): any { return this.keyForm.controls; } async onSubmit(): Promise { this.submitted = true; if (this.keyForm.invalid) { return; } this.loading = true; await this.authService.setKey(this.keyFormStub.key.value); this.loading = false; } login(): void { const loginStatus = this.authService.login(); if (loginStatus) { this.router.navigate(['/home']); } } switchWindows(): void { this.authService.sessionToken = undefined; const divOne = document.getElementById('one'); const divTwo = document.getElementById('two'); this.toggleDisplay(divOne); this.toggleDisplay(divTwo); } toggleDisplay(element: any): void { const style = window.getComputedStyle(element).display; if (style === 'block') { element.style.display = 'none'; } else { element.style.display = 'block'; } } }