34 lines
1.5 KiB
HTML
34 lines
1.5 KiB
HTML
<div class="dialog-overlay" (click)="closeDialog()">
|
|
<div class="dialog-card" (click)="$event.stopPropagation()">
|
|
<div class="dialog-title">LOGIN</div>
|
|
|
|
<form [formGroup]="loginForm" (ngSubmit)="onSubmit()">
|
|
<label for="username" class="sr-only">Username</label>
|
|
<input id="username" type="text" class="dialog-input" formControlName="username" placeholder="Username" />
|
|
@if (loginForm.get('username')?.invalid && loginForm.get('username')?.touched) {
|
|
<small class="text-danger">Username must be at least 3 characters</small>
|
|
}
|
|
|
|
<label for="password" class="sr-only">Password</label>
|
|
<input id="password" type="password" class="dialog-input" formControlName="password" placeholder="Password" />
|
|
@if (loginForm.get('password')?.invalid && loginForm.get('password')?.touched) {
|
|
<small class="text-danger">Password must be at least 6 characters</small>
|
|
}
|
|
|
|
@if (errorMessage) {
|
|
<div class="error-banner">{{ errorMessage }}</div>
|
|
}
|
|
|
|
<div class="dialog-actions">
|
|
<button type="button" class="app-btn" (click)="openRegister()">Create account</button>
|
|
<button type="button" class="app-btn" (click)="closeDialog()">Cancel</button>
|
|
<button type="submit" class="app-btn" [disabled]="isLoading || loginForm.invalid">
|
|
@if (isLoading) {
|
|
<span class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span>
|
|
}
|
|
Login
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div> |