projects/prestations-ng/src/validation/validation-handler.service.ts
Properties |
|
Methods |
Accessors |
getMessage | |||||||||
getMessage(component: FoehnInputComponent<any>, error: FormError)
|
|||||||||
Parameters :
Returns :
string
|
shouldDisplayErrors | ||||||
shouldDisplayErrors(display: boolean)
|
||||||
Parameters :
Returns :
void
|
updateErrors | ||||||
updateErrors(errors: FormError[])
|
||||||
Parameters :
Returns :
void
|
Private _validationDisplaySubject |
Type : Subject<boolean>
|
Default value : new BehaviorSubject<boolean>(true)
|
Private _validationErrorsSubject |
Type : Subject<FormError[]>
|
Default value : new BehaviorSubject<FormError[]>([])
|
validationErrorsSubject |
getvalidationErrorsSubject()
|
validationDisplaySubject |
getvalidationDisplaySubject()
|
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
// eslint-disable-next-line import/no-cycle
import { FoehnInputComponent } from '../foehn-input/foehn-input.component';
import { FormError } from '../form-error';
@Injectable({
providedIn: 'root'
})
export class ValidationHandlerService {
private _validationErrorsSubject: Subject<FormError[]> =
new BehaviorSubject<FormError[]>([]);
private _validationDisplaySubject: Subject<boolean> =
new BehaviorSubject<boolean>(true);
get validationErrorsSubject(): Observable<FormError[]> {
return this._validationErrorsSubject.asObservable();
}
get validationDisplaySubject(): Observable<boolean> {
return this._validationDisplaySubject.asObservable();
}
updateErrors(errors: FormError[]): void {
this._validationErrorsSubject.next(errors);
}
shouldDisplayErrors(display: boolean): void {
this._validationDisplaySubject.next(display);
}
getMessage(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
component: FoehnInputComponent<any>,
error: FormError
): string {
// For template custom message
if (component.customErrors[error.code]) {
return component.customErrors[error.code];
}
// For custom validators & backend
if (!!error.message) {
return error.message;
}
// For undescribed errors
return `Erreur de type "${error.code}" sur le champ`;
}
}