36 lines
885 B
TypeScript
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;
|
|
};
|
|
}
|
|
}
|