Feature: Added Login / Register Feature #3
|
@ -19,8 +19,6 @@ import {
|
||||||
} from '@angular/forms';
|
} from '@angular/forms';
|
||||||
import { ButtonModule } from 'primeng/button';
|
import { ButtonModule } from 'primeng/button';
|
||||||
import { CheckboxModule } from 'primeng/checkbox';
|
import { CheckboxModule } from 'primeng/checkbox';
|
||||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
||||||
import { debounceTime } from 'rxjs/operators';
|
|
||||||
|
|
||||||
type AuthAction = 'register' | 'signup';
|
type AuthAction = 'register' | 'signup';
|
||||||
|
|
||||||
|
@ -41,12 +39,12 @@ type AuthAction = 'register' | 'signup';
|
||||||
})
|
})
|
||||||
export class RegisterRootComponent implements OnInit {
|
export class RegisterRootComponent implements OnInit {
|
||||||
public form: FormGroup | undefined;
|
public form: FormGroup | undefined;
|
||||||
|
|
||||||
public isRegisterSignal: WritableSignal<boolean> = signal(false);
|
public isRegisterSignal: WritableSignal<boolean> = signal(false);
|
||||||
public isSignupSignal: WritableSignal<boolean> = signal(false);
|
public isSignupSignal: WritableSignal<boolean> = signal(false);
|
||||||
public isDisplayButtons: WritableSignal<boolean> = signal(true);
|
public isDisplayButtons: WritableSignal<boolean> = signal(true);
|
||||||
|
|
||||||
public emailInvalid: WritableSignal<boolean | null> = signal(true);
|
public emailInvalid: WritableSignal<boolean | null> = signal(null);
|
||||||
public passwordInvalid: WritableSignal<boolean | null> = signal(null);
|
public passwordInvalid: WritableSignal<boolean | null> = signal(null);
|
||||||
public termsInvalid: WritableSignal<boolean | null> = signal(null);
|
public termsInvalid: WritableSignal<boolean | null> = signal(null);
|
||||||
|
|
||||||
|
@ -74,12 +72,6 @@ export class RegisterRootComponent implements OnInit {
|
||||||
password: ['', [Validators.required, Validators.minLength(6)]],
|
password: ['', [Validators.required, Validators.minLength(6)]],
|
||||||
terms: [false, [Validators.requiredTrue]],
|
terms: [false, [Validators.requiredTrue]],
|
||||||
});
|
});
|
||||||
|
|
||||||
this.form.statusChanges
|
|
||||||
.pipe(debounceTime(500), takeUntilDestroyed(this.destroyRef))
|
|
||||||
.subscribe(() => {
|
|
||||||
this.updateFieldInvalidity();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public toggleAction(action: AuthAction): void {
|
public toggleAction(action: AuthAction): void {
|
||||||
|
@ -108,6 +100,10 @@ export class RegisterRootComponent implements OnInit {
|
||||||
this.isRegisterSignal.set(false);
|
this.isRegisterSignal.set(false);
|
||||||
this.isSignupSignal.set(false);
|
this.isSignupSignal.set(false);
|
||||||
this.isDisplayButtons.set(true);
|
this.isDisplayButtons.set(true);
|
||||||
|
|
||||||
|
this.emailInvalid.set(false);
|
||||||
|
this.passwordInvalid.set(false);
|
||||||
|
this.termsInvalid.set(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private updateFieldInvalidity(): void {
|
private updateFieldInvalidity(): void {
|
||||||
|
|
Loading…
Reference in New Issue