import { ChangeDetectionStrategy, Component, inject, input, signal } from '@angular/core' import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms' import { Title } from '@angular/platform-browser' import { RouterLink } from '@angular/router' import { ApiError, toApiError } from '../../core/api.service' import { AuthStore } from '../../core/auth.store' import { authErrorMessage } from '../../shared/form-errors' import { FormField } from '../../shared/form-field' /** * Login. `?redirect=` (validato in core/redirect.ts) indica dove tornare: una pagina dell'area riservata * o del sito pubblico (es. `/checkout`). `?scaduta=1` = sessione persa durante l'uso; * `?account=disattivato` = account appena disattivato dall'utente. */ @Component({ selector: 'app-login', imports: [ReactiveFormsModule, RouterLink, FormField], changeDetection: ChangeDetectionStrategy.OnPush, template: `
Il tuo account è stato disattivato e la richiesta di cancellazione è stata inviata. Grazie per averci scelto.
} @if (scaduta()) {La sessione è scaduta: accedi di nuovo per continuare.
} @if (error(); as message) {{{ message }}
}Non hai un account? Registrati
`, styles: ` .single { grid-template-columns: 1fr; } .forgot { margin: var(--space-2) 0 var(--space-5); text-align: right; } .switch { margin: var(--space-5) 0 0; text-align: center; } `, }) export default class Login { private readonly auth = inject(AuthStore) readonly redirect = input