import { Component, OnInit } from '@angular/core'; import { FuseLayoutService } from '../../../../core/services/layout.service'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; @Component({ selector : 'fuse-login', templateUrl: './login.component.html', styleUrls : ['./login.component.scss'] }) export class LoginComponent implements OnInit { loginForm: FormGroup; loginFormErrors: any; constructor( private layoutService: FuseLayoutService, private formBuilder: FormBuilder ) { this.layoutService.setSettings({ navigation: 'none', toolbar : 'none', footer : 'none' }); this.loginFormErrors = { email : {}, password: {} }; } ngOnInit() { this.loginForm = this.formBuilder.group({ email : ['', [Validators.required, Validators.email]], password: ['', Validators.required] }); this.loginForm.valueChanges.subscribe(() => { this.onLoginFormValuesChanged(); }); } onLoginFormValuesChanged() { for ( const field in this.loginFormErrors ) { if ( !this.loginFormErrors.hasOwnProperty(field) ) { continue; } // Clear previous errors this.loginFormErrors[field] = {}; // Get the control const control = this.loginForm.get(field); if ( control && control.dirty && !control.valid ) { this.loginFormErrors[field] = control.errors; } } } }