import { Component, OnInit } from "@angular/core"; import { FormBuilder, Validators } from "@angular/forms"; import { ActivatedRoute, Router } from "@angular/router"; import { EnvironmentService } from "@bitwarden/common/abstractions/environment.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { LoginService } from "@bitwarden/common/auth/abstractions/login.service"; @Component({ selector: "app-home", templateUrl: "home.component.html", }) export class HomeComponent implements OnInit { loginInitiated = false; formGroup = this.formBuilder.group({ email: ["", [Validators.required, Validators.email]], rememberEmail: [false], }); constructor( protected platformUtilsService: PlatformUtilsService, private stateService: StateService, private formBuilder: FormBuilder, private router: Router, private i18nService: I18nService, private environmentService: EnvironmentService, private route: ActivatedRoute, private loginService: LoginService ) {} async ngOnInit(): Promise { let savedEmail = this.loginService.getEmail(); const rememberEmail = this.loginService.getRememberEmail(); if (savedEmail != null) { this.formGroup.patchValue({ email: savedEmail, rememberEmail: rememberEmail, }); } else { savedEmail = await this.stateService.getRememberedEmail(); if (savedEmail != null) { this.formGroup.patchValue({ email: savedEmail, rememberEmail: true, }); } } } submit() { this.formGroup.markAllAsTouched(); if (this.formGroup.invalid) { this.platformUtilsService.showToast( "error", this.i18nService.t("errorOccured"), this.i18nService.t("invalidEmail") ); return; } this.loginService.setEmail(this.formGroup.value.email); this.loginService.setRememberEmail(this.formGroup.value.rememberEmail); this.router.navigate(["login"], { queryParams: { email: this.formGroup.value.email } }); } get selfHostedDomain() { return this.environmentService.hasBaseUrl() ? this.environmentService.getWebVaultUrl() : null; } setFormValues() { this.loginService.setEmail(this.formGroup.value.email); this.loginService.setRememberEmail(this.formGroup.value.rememberEmail); } }