angular-hotel-manager/src/app/crossValidator.service.ts

36 lines
885 B
TypeScript

import {
AbstractControl,
FormGroup,
ValidationErrors,
ValidatorFn,
} from '@angular/forms';
export class CrossValidator {
public crossValidate() {
return (control: AbstractControl): ValidationErrors | null => {
if (!(control instanceof FormGroup)) {
return null;
}
const contactType = control.get('contactType')?.value;
if (contactType == ('None' || null)) return null;
let error = null;
if (contactType == 'Email') {
error =
control.get('email')?.value != control.get('emailConfirmation')?.value
? { mismatchEmail: true }
: null;
} else {
error =
control.get('phone')?.value != control.get('phoneConfirmation')?.value
? { mismatchPhone: true }
: null;
}
console.log('Error: ', error);
return error;
};
}
}