Merge branch 'main' into feat-dice
All checks were successful
CI / Get Changed Files (pull_request) Successful in 13s
CI / eslint (pull_request) Has been skipped
CI / Docker frontend validation (pull_request) Has been skipped
CI / oxlint (pull_request) Has been skipped
CI / prettier (pull_request) Has been skipped
CI / test-build (pull_request) Has been skipped
CI / Docker backend validation (pull_request) Successful in 13s
CI / Checkstyle Main (pull_request) Successful in 2m39s

This commit is contained in:
Phan Huy Tran 2025-05-21 07:02:16 +00:00
commit 0d59b63c23
No known key found for this signature in database
GPG key ID: 944223E4D46B7412
3 changed files with 27 additions and 5 deletions

View file

@ -16,13 +16,13 @@ export class VerifyEmailComponent implements OnInit {
const token = this.route.snapshot.queryParamMap.get('token'); const token = this.route.snapshot.queryParamMap.get('token');
if (!token) { if (!token) {
this.router.navigate(['']); this.router.navigate(['/']);
console.log('no token'); console.log('no token');
return; return;
} }
this.authService.verifyEmail(token).subscribe(() => { this.authService.verifyEmail(token).subscribe(() => {
this.router.navigate([''], { this.router.navigate(['/'], {
queryParams: { login: true }, queryParams: { login: true },
}); });
}); });

View file

@ -182,7 +182,7 @@
</div> </div>
</div> </div>
@if (showLogin() || showRegister()) { @if (showLogin() || showRegister() || showRecoverPassword()) {
<div <div
class="fixed inset-0 bg-black/50 z-40" class="fixed inset-0 bg-black/50 z-40"
(click)="hideAuthForms()" (click)="hideAuthForms()"
@ -194,7 +194,11 @@
<div class="fixed inset-0 flex items-center justify-center z-50 p-4" role="presentation"> <div class="fixed inset-0 flex items-center justify-center z-50 p-4" role="presentation">
<div class="relative" role="dialog" aria-modal="true"> <div class="relative" role="dialog" aria-modal="true">
@if (showLogin()) { @if (showLogin()) {
<app-login (switchForm)="showRegisterForm()" (closeDialog)="hideAuthForms()"></app-login> <app-login
(forgotPassword)="showRecoverPasswordForm()"
(switchForm)="showRegisterForm()"
(closeDialog)="hideAuthForms()"
></app-login>
} }
@if (showRegister()) { @if (showRegister()) {
<app-register <app-register
@ -202,6 +206,12 @@
(closeDialog)="hideAuthForms()" (closeDialog)="hideAuthForms()"
></app-register> ></app-register>
} }
@if (showRecoverPassword()) {
<app-recover-password
(closeDialog)="hideAuthForms()"
(switchToLogin)="showLoginForm()"
></app-recover-password>
}
</div> </div>
</div> </div>
} }

View file

@ -11,11 +11,12 @@ import { ActivatedRoute, RouterLink } from '@angular/router';
import { AuthService } from '@service/auth.service'; import { AuthService } from '@service/auth.service';
import { LoginComponent } from '../auth/login/login.component'; import { LoginComponent } from '../auth/login/login.component';
import { RegisterComponent } from '../auth/register/register.component'; import { RegisterComponent } from '../auth/register/register.component';
import { RecoverPasswordComponent } from '../auth/recover-password/recover-password.component';
@Component({ @Component({
selector: 'app-landing-page', selector: 'app-landing-page',
standalone: true, standalone: true,
imports: [NgFor, RouterLink, LoginComponent, RegisterComponent], imports: [NgFor, RouterLink, LoginComponent, RegisterComponent, RecoverPasswordComponent],
templateUrl: './landing.component.html', templateUrl: './landing.component.html',
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
}) })
@ -26,6 +27,7 @@ export class LandingComponent implements OnInit, OnDestroy {
route: ActivatedRoute = inject(ActivatedRoute); route: ActivatedRoute = inject(ActivatedRoute);
showLogin = signal(false); showLogin = signal(false);
showRegister = signal(false); showRegister = signal(false);
showRecoverPassword = signal(false);
ngOnInit() { ngOnInit() {
this.startAutoplay(); this.startAutoplay();
@ -43,18 +45,28 @@ export class LandingComponent implements OnInit, OnDestroy {
showLoginForm() { showLoginForm() {
this.showLogin.set(true); this.showLogin.set(true);
this.showRegister.set(false); this.showRegister.set(false);
this.showRecoverPassword.set(false);
document.body.style.overflow = 'hidden'; document.body.style.overflow = 'hidden';
} }
showRegisterForm() { showRegisterForm() {
this.showRegister.set(true); this.showRegister.set(true);
this.showLogin.set(false); this.showLogin.set(false);
this.showRecoverPassword.set(false);
document.body.style.overflow = 'hidden';
}
showRecoverPasswordForm() {
this.showRecoverPassword.set(true);
this.showLogin.set(false);
this.showRegister.set(false);
document.body.style.overflow = 'hidden'; document.body.style.overflow = 'hidden';
} }
hideAuthForms() { hideAuthForms() {
this.showLogin.set(false); this.showLogin.set(false);
this.showRegister.set(false); this.showRegister.set(false);
this.showRecoverPassword.set(false);
document.body.style.overflow = 'auto'; document.body.style.overflow = 'auto';
} }