cic-staff-client/src/app/_helpers/custom-error-state-matcher.ts

22 lines
921 B
TypeScript

// Core imports
import { ErrorStateMatcher } from '@angular/material/core';
import { FormControl, FormGroupDirective, NgForm } from '@angular/forms';
/**
* Custom provider that defines how form controls behave with regards to displaying error messages.
*
*/
export class CustomErrorStateMatcher implements ErrorStateMatcher {
/**
* Checks whether an invalid input has been made and an error should be made.
*
* @param control - Tracks the value and validation status of an individual form control.
* @param form - Binding of an existing FormGroup to a DOM element.
* @returns true - If an invalid input has been made to the form control.
*/
isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
const isSubmitted: boolean = form && form.submitted;
return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));
}
}