diff --git a/frontend/src/app/pages/register-root/register-root.component.ts b/frontend/src/app/pages/register-root/register-root.component.ts index d088974..2762ae8 100644 --- a/frontend/src/app/pages/register-root/register-root.component.ts +++ b/frontend/src/app/pages/register-root/register-root.component.ts @@ -47,11 +47,9 @@ type AuthAction = 'register' | 'signup'; }) export class RegisterRootComponent implements OnInit { public form: FormGroup | undefined; - public isRegisterSignal: WritableSignal = signal(false); public isSignupSignal: WritableSignal = signal(false); public isDisplayButtons: WritableSignal = signal(true); - public emailInvalid: WritableSignal = signal(null); public passwordInvalid: WritableSignal = signal(null); public termsInvalid: WritableSignal = signal(null); @@ -84,11 +82,13 @@ export class RegisterRootComponent implements OnInit { this.isRegisterSignal.set(false); this.isSignupSignal.set(true); } + this.isDisplayButtons.set(false); } public onSubmit(): void { this.markControlsAsTouchedAndDirty(['email', 'password', 'terms']); + if (this.form?.valid) { if (this.isRegisterSignal()) { this.register(this.form.value); @@ -132,6 +132,7 @@ export class RegisterRootComponent implements OnInit { private setupEmailValueChanges(): void { const emailControl = this.form?.get('email') as AbstractControl; + emailControl.valueChanges.subscribe((value: string) => { if (value.length >= 4) { emailControl.setValidators([ @@ -147,8 +148,10 @@ export class RegisterRootComponent implements OnInit { emailControl.updateValueAndValidity({ emitEvent: false }); }); } + private setupPasswordValueChanges(): void { const passwordControl = this.form?.get('password') as AbstractControl; + passwordControl.valueChanges.subscribe((value: string) => { if (value.length >= 8) { passwordControl.setValidators([ @@ -168,6 +171,7 @@ export class RegisterRootComponent implements OnInit { private markControlsAsTouchedAndDirty(controlNames: string[]): void { controlNames.forEach((controlName: string) => { const control = this.form?.get(controlName); + if (control) { control.markAsTouched(); control.markAsDirty();