import { Component, OnInit, inject } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormControl, FormsModule, ReactiveFormsModule, Validators, } from '@angular/forms'; import { CarouselComponent } from '../../../shared/carousel/carousel.component'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatCheckboxModule } from '@angular/material/checkbox'; import { Router, RouterLink, RouterOutlet } from '@angular/router'; import { AuthService } from 'src/app/_helpers/services/auth.service'; @Component({ selector: 'bgui-login-standard-user', standalone: true, imports: [ CommonModule, CarouselComponent, MatFormFieldModule, ReactiveFormsModule, MatInputModule, MatButtonModule, MatIconModule, MatCheckboxModule, FormsModule, ], templateUrl: './login-standard-user.component.html', styleUrls: ['./login-standard-user.component.scss'], providers: [AuthService, RouterLink, RouterOutlet], }) export class LoginStandardUserComponent implements OnInit { router = inject(Router); // eslint-disable-next-line @typescript-eslint/no-explicit-any //authService: any; constructor(private authService: AuthService) {} images = [ { imageSrc: './assets/images/carousel-auth/orange-with-variant.png', imageAlt: 'nature1', }, { imageSrc: './assets/images/carousel-auth/silver-modern-with-variant.png', imageAlt: 'nature1', }, ]; username = new FormControl('', [Validators.required]); password = new FormControl('', [Validators.required]); // eslint-disable-next-line @typescript-eslint/no-explicit-any user: any = { username: '', password: '', }; getErrorMessage() { if (this.username.hasError('required')) { return 'Impossible de trouver votre compte Beasy'; } return this.username.hasError('email') ? 'Identifiant non valide' : ''; } getErrorAuth() { this.msgAuth = ''; } hide = true; isActive = false; msgAuth = ''; // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method ngOnInit() { this.user = { username: '', password: '', }; } login() { console.log('Username:', this.user.username); console.log('Password:', this.user.password); this.authService.login(this.user.username, this.user.password).subscribe( (response: { status: boolean; data?: any; error?: string }) => { console.log('currentUser =>', response.data); console.log('response.status', response.status); if (response.status) { console.log('Connexion réussie'); // Stocker l'username dans une variable ou dans le sessionStorage si nécessaire const username = response.data; console.log('userInfos', username); try { sessionStorage.setItem('username', username); } catch (error) { console.warn('Could not store username in sessionStorage', error); } // Redirection vers la page admin console.log('Redirection vers la page admin'); this.router.navigateByUrl('/admin'); } else { console.error('Échec de la connexion :', response.error); } }, (error: any) => { console.error('Erreur lors de la connexion :', error); // Gérer l'erreur de connexion ici } ); } refreshToken() { this.authService.refreshToken(); } logout() { this.authService.logout(); } onSubmit() {} }