diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json index 377a4f3..f6c84a4 100644 --- a/frontend/.eslintrc.json +++ b/frontend/.eslintrc.json @@ -27,6 +27,44 @@ "prefix": "app", "style": "kebab-case" } + ], + "@typescript-eslint/explicit-member-accessibility": [ + "error", + { + "accessibility": "explicit" + } + ], + "@typescript-eslint/explicit-function-return-type": [ + "error", + { + "allowExpressions": false, + "allowTypedFunctionExpressions": true, + "allowHigherOrderFunctions": false, + "allowDirectConstAssertionInArrowFunctions": false, + "allowConciseArrowFunctionExpressionsStartingWithVoid": false + } + ], + "@typescript-eslint/member-ordering": [ + "error", + { + "default": [ + "public-static-field", + "protected-static-field", + "private-static-field", + "public-instance-field", + "protected-instance-field", + "private-instance-field", + "public-constructor", + "protected-constructor", + "private-constructor", + "public-static-method", + "protected-static-method", + "private-static-method", + "public-instance-method", + "protected-instance-method", + "private-instance-method" + ] + } ] } }, @@ -36,7 +74,14 @@ "plugin:@angular-eslint/template/recommended", "plugin:@angular-eslint/template/accessibility" ], - "rules": {} + "rules": { + "@angular-eslint/template/elements-content": [ + "error", + { + "allowList": ["label"] + } + ] + } } ] } 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 3d5b967..0acb78c 100644 --- a/frontend/src/app/pages/register-root/register-root.component.ts +++ b/frontend/src/app/pages/register-root/register-root.component.ts @@ -20,7 +20,10 @@ import { import { ButtonModule } from 'primeng/button'; import { CheckboxModule } from 'primeng/checkbox'; import { PasswordModule } from 'primeng/password'; -import { customEmailValidator, customPasswordValidator } from '../../shared/validator'; +import { + customEmailValidator, + customPasswordValidator, +} from '../../shared/validator'; type AuthAction = 'register' | 'signup'; @@ -51,8 +54,8 @@ export class RegisterRootComponent implements OnInit { public passwordInvalid: WritableSignal = signal(null); public termsInvalid: WritableSignal = signal(null); - constructor(private readonly formBuilder: FormBuilder) { - effect(() => { + public constructor(private readonly formBuilder: FormBuilder) { + effect((): void => { if (this.form) { if (this.isRegisterSignal()) { this.form.addControl( @@ -107,16 +110,16 @@ export class RegisterRootComponent implements OnInit { this.form = this.formBuilder.group({ email: new FormControl('', { validators: [Validators.required, customEmailValidator()], - updateOn: 'change' + updateOn: 'change', }), password: new FormControl('', { validators: [Validators.required, customPasswordValidator()], - updateOn: 'change' + updateOn: 'change', }), terms: new FormControl(false, { validators: [Validators.requiredTrue], - updateOn: 'change' - }) + updateOn: 'change', + }), }); } @@ -129,9 +132,15 @@ export class RegisterRootComponent implements OnInit { const emailControl = this.form?.get('email') as AbstractControl; emailControl.valueChanges.subscribe((value: string) => { if (value.length >= 4) { - emailControl.setValidators([Validators.required, customEmailValidator()]); + emailControl.setValidators([ + Validators.required, + customEmailValidator(), + ]); } else { - emailControl.setValidators([Validators.required, Validators.minLength(4)]); + emailControl.setValidators([ + Validators.required, + Validators.minLength(4), + ]); } emailControl.updateValueAndValidity({ emitEvent: false }); }); @@ -140,9 +149,15 @@ export class RegisterRootComponent implements OnInit { const passwordControl = this.form?.get('password') as AbstractControl; passwordControl.valueChanges.subscribe((value: string) => { if (value.length >= 8) { - passwordControl.setValidators([Validators.required, customPasswordValidator()]); + passwordControl.setValidators([ + Validators.required, + customPasswordValidator(), + ]); } else { - passwordControl.setValidators([Validators.required, Validators.minLength(8)]); + passwordControl.setValidators([ + Validators.required, + Validators.minLength(8), + ]); } passwordControl.updateValueAndValidity({ emitEvent: false }); }); diff --git a/frontend/src/app/shared/validator/index.ts b/frontend/src/app/shared/validator/index.ts index 3b6f9f9..f46127b 100644 --- a/frontend/src/app/shared/validator/index.ts +++ b/frontend/src/app/shared/validator/index.ts @@ -1,2 +1,2 @@ export * from './email-validator'; -export * from './password-validator' +export * from './password-validator';