Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 22x 44x 44x 44x 44x 22x 44x 44x 44x 44x 22x 22x 44x 44x 44x 44x 22x 44x 44x 44x 22x 44x 44x 22x 44x 22x | <div class="page-container">
<section class="login-card">
@if (loginSucceeded()) {
<h1>{{ 'auth.login.welcomeBack' | transloco }}</h1>
<p class="subtitle">{{ 'auth.login.redirecting' | transloco }}</p>
<p class="feedback success-box">{{ 'auth.login.success' | transloco }}</p>
} @else {
<h1>{{ 'auth.login.title' | transloco }}</h1>
<p class="subtitle">{{ 'auth.login.subtitle' | transloco }}</p>
<form [formGroup]="loginForm" (ngSubmit)="onSubmit()" novalidate>
<div class="field-group">
<label for="email">{{ 'auth.login.email' | transloco }}</label>
<input id="email" type="email" formControlName="email" [placeholder]="'auth.login.emailPlaceholder' | transloco"
autocomplete="email" [class.invalid]="isInvalid('email')" />
@if (isInvalid('email')) {
<small class="error">{{ 'auth.login.emailInvalid' | transloco }}</small>
}
</div>
<div class="field-group">
<label for="password">{{ 'auth.login.password' | transloco }}</label>
<input id="password" type="password" formControlName="password" [placeholder]="'auth.login.passwordPlaceholder' | transloco"
autocomplete="current-password" [class.invalid]="isInvalid('password')" />
@if (isInvalid('password')) {
<small class="error">{{ 'auth.login.passwordInvalid' | transloco }}</small>
}
</div>
@if (submitError()) {
<p class="feedback error-box">{{ submitError() }}</p>
}
<button type="submit" class="login-btn" [disabled]="isSubmitting()">
{{ isSubmitting() ? ('auth.login.submitting' | transloco) : ('auth.login.submit' | transloco) }}
</button>
</form>
}
<h3>{{ 'auth.login.registerTitle' | transloco }}</h3>
<p class="subtitle">{{ 'auth.login.registerSubtitle' | transloco }}</p>
<button type="button" routerLink="/register" class="login-btn" style="text-align: center;">
{{ 'auth.login.registerCta' | transloco }}
</button>
</section>
</div> |