import { ChangeDetectorRef, Component, inject } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormBuilder, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms'; import { Router, RouterModule } from '@angular/router'; import { AuthService } from '../../../core/services/auth.service'; import { DevkitInputComponent } from '@devstroupe/ui/input/input.component'; import { DevkitButtonComponent } from '@devstroupe/ui/button/button.component'; @Component({ selector: 'app-login', standalone: true, imports: [CommonModule, ReactiveFormsModule, DevkitInputComponent, DevkitButtonComponent, RouterModule], templateUrl: './login.component.html', }) export class LoginComponent { private fb = inject(FormBuilder); private authService = inject(AuthService); private router = inject(Router); private changeDetector = inject(ChangeDetectorRef); form: FormGroup = this.fb.group({ email: ['', [Validators.required, Validators.email]], password: ['', [Validators.required, Validators.minLength(6)]], }); errorMessage = ''; loading = false; onSubmit(): void { if (this.form.invalid) return; this.loading = true; this.errorMessage = ''; this.authService.login(this.form.value).subscribe({ next: () => { this.loading = false; this.changeDetector.markForCheck(); this.router.navigate(['/']); }, error: (err) => { this.loading = false; this.errorMessage = err.error?.message || 'Erro ao tentar fazer login. Tente novamente.'; }, }); } }