Não sei bem o que aconteceu, já olhei código do professor e pelo menos os componentes home, signin e sign up ta igual, mas depois que apliquei as validações de focus pro input, meu login ficou bem bugado, ele não ta aparecendo em vermelho de primeira sobre as validações que fizemos, só depois que clico em algum botão/link, e o focus não está funcionando direito também.
Estou subindo todo projeto no github, caso precisem ver melhor: https://github.com/keelylima/alurapic-angular
OBS: Peguei link do projeto final do professor, e funciona certinho, mas não fiz até última aula ainda, então não sei se as próximas atividades arruma isso, porém, olhando no código, não vi ele mexendo mais nisso, validação fica nesses componentes mesmo.
import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { AuthService } from '../../core/auth/auth.service';
import { Router } from '@angular/router';
import { PlatformDetectorService } from '../../core/plataform-detector/platform-detector.service';
@Component({
templateUrl: './signin.component.html'
})
export class SignInComponent implements OnInit {
loginForm: FormGroup;
@ViewChild('userNameInput') userNameInput: ElementRef<HTMLInputElement>;
constructor(
private formBuilder: FormBuilder,
private authService: AuthService,
private router: Router,
private platformDetectorService: PlatformDetectorService) { }
ngOnInit(): void {
this.loginForm = this.formBuilder.group({
userName: ['', Validators.required],
password: ['', Validators.required]
});
this.platformDetectorService.isPlatformBrowser() &&
this.userNameInput.nativeElement.focus();
}
login() {
const userName = this.loginForm.get('userName').value;
const password = this.loginForm.get('password').value;
this.authService
.authenticate(userName, password)
.subscribe(
() => this.router.navigate(['user', userName]),
err => {
console.log(err);
this.loginForm.reset();
this.platformDetectorService.isPlatformBrowser() &&
this.userNameInput.nativeElement.focus();
alert('Invalid user name or password');
}
);
}
}