import { AbstractControl, ValidatorFn } from '@angular/forms';
import { ValidationError } from '@msfa-models/validation-error.model';

export function RequiredValidator(label = 'Fältet', arrayValue = false): ValidatorFn {
  return (control: AbstractControl): ValidationError => {
    if (control) {
      if ((arrayValue && !control.value) || (Array.isArray(control.value) && !control.value.length)) {
        return { type: 'required', message: `Minst ${label} behöver väljas` };
      }

      if (!control.value) {
        return { type: 'required', message: `${label} är obligatoriskt` };
      }
    }

    return null;
  };
}
