added es lint and run prettier

This commit is contained in:
Igor Hrenowitsch Propisnov 2024-05-17 12:50:59 +02:00
parent aaf6b58c82
commit 58bf6a1bfa
3 changed files with 73 additions and 13 deletions

View File

@ -27,6 +27,44 @@
"prefix": "app", "prefix": "app",
"style": "kebab-case" "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/recommended",
"plugin:@angular-eslint/template/accessibility" "plugin:@angular-eslint/template/accessibility"
], ],
"rules": {} "rules": {
"@angular-eslint/template/elements-content": [
"error",
{
"allowList": ["label"]
}
]
}
} }
] ]
} }

View File

@ -20,7 +20,10 @@ import {
import { ButtonModule } from 'primeng/button'; import { ButtonModule } from 'primeng/button';
import { CheckboxModule } from 'primeng/checkbox'; import { CheckboxModule } from 'primeng/checkbox';
import { PasswordModule } from 'primeng/password'; import { PasswordModule } from 'primeng/password';
import { customEmailValidator, customPasswordValidator } from '../../shared/validator'; import {
customEmailValidator,
customPasswordValidator,
} from '../../shared/validator';
type AuthAction = 'register' | 'signup'; type AuthAction = 'register' | 'signup';
@ -51,8 +54,8 @@ export class RegisterRootComponent implements OnInit {
public passwordInvalid: WritableSignal<string | null> = signal(null); public passwordInvalid: WritableSignal<string | null> = signal(null);
public termsInvalid: WritableSignal<string | null> = signal(null); public termsInvalid: WritableSignal<string | null> = signal(null);
constructor(private readonly formBuilder: FormBuilder) { public constructor(private readonly formBuilder: FormBuilder) {
effect(() => { effect((): void => {
if (this.form) { if (this.form) {
if (this.isRegisterSignal()) { if (this.isRegisterSignal()) {
this.form.addControl( this.form.addControl(
@ -107,16 +110,16 @@ export class RegisterRootComponent implements OnInit {
this.form = this.formBuilder.group({ this.form = this.formBuilder.group({
email: new FormControl('', { email: new FormControl('', {
validators: [Validators.required, customEmailValidator()], validators: [Validators.required, customEmailValidator()],
updateOn: 'change' updateOn: 'change',
}), }),
password: new FormControl('', { password: new FormControl('', {
validators: [Validators.required, customPasswordValidator()], validators: [Validators.required, customPasswordValidator()],
updateOn: 'change' updateOn: 'change',
}), }),
terms: new FormControl(false, { terms: new FormControl(false, {
validators: [Validators.requiredTrue], validators: [Validators.requiredTrue],
updateOn: 'change' updateOn: 'change',
}) }),
}); });
} }
@ -129,9 +132,15 @@ export class RegisterRootComponent implements OnInit {
const emailControl = this.form?.get('email') as AbstractControl; const emailControl = this.form?.get('email') as AbstractControl;
emailControl.valueChanges.subscribe((value: string) => { emailControl.valueChanges.subscribe((value: string) => {
if (value.length >= 4) { if (value.length >= 4) {
emailControl.setValidators([Validators.required, customEmailValidator()]); emailControl.setValidators([
Validators.required,
customEmailValidator(),
]);
} else { } else {
emailControl.setValidators([Validators.required, Validators.minLength(4)]); emailControl.setValidators([
Validators.required,
Validators.minLength(4),
]);
} }
emailControl.updateValueAndValidity({ emitEvent: false }); emailControl.updateValueAndValidity({ emitEvent: false });
}); });
@ -140,9 +149,15 @@ export class RegisterRootComponent implements OnInit {
const passwordControl = this.form?.get('password') as AbstractControl; const passwordControl = this.form?.get('password') as AbstractControl;
passwordControl.valueChanges.subscribe((value: string) => { passwordControl.valueChanges.subscribe((value: string) => {
if (value.length >= 8) { if (value.length >= 8) {
passwordControl.setValidators([Validators.required, customPasswordValidator()]); passwordControl.setValidators([
Validators.required,
customPasswordValidator(),
]);
} else { } else {
passwordControl.setValidators([Validators.required, Validators.minLength(8)]); passwordControl.setValidators([
Validators.required,
Validators.minLength(8),
]);
} }
passwordControl.updateValueAndValidity({ emitEvent: false }); passwordControl.updateValueAndValidity({ emitEvent: false });
}); });

View File

@ -1,2 +1,2 @@
export * from './email-validator'; export * from './email-validator';
export * from './password-validator' export * from './password-validator';