UNPKG

react-form-with-constraints

Version:
42 lines (41 loc) 1.48 kB
import { clearArray } from './clearArray'; import { FieldFeedbackType } from './FieldFeedbackType'; export class Field { constructor(name) { this.name = name; this.validations = []; } addOrReplaceValidation(validation) { const i = this.validations.findIndex(_validation => _validation.key === validation.key); if (i > -1) this.validations[i] = validation; else this.validations.push(validation); } clearValidations() { clearArray(this.validations); } hasFeedbacksOfType(type, fieldFeedbacksKey) { return this.validations.some(fieldFeedback => (fieldFeedbacksKey === undefined || fieldFeedback.key.startsWith(`${fieldFeedbacksKey}.`)) && fieldFeedback.type === type && fieldFeedback.show === true); } hasErrors(fieldFeedbacksKey) { return this.hasFeedbacksOfType(FieldFeedbackType.Error, fieldFeedbacksKey); } hasWarnings(fieldFeedbacksKey) { return this.hasFeedbacksOfType(FieldFeedbackType.Warning, fieldFeedbacksKey); } hasInfos(fieldFeedbacksKey) { return this.hasFeedbacksOfType(FieldFeedbackType.Info, fieldFeedbacksKey); } hasFeedbacks(fieldFeedbacksKey) { return (this.hasErrors(fieldFeedbacksKey) || this.hasWarnings(fieldFeedbacksKey) || this.hasInfos(fieldFeedbacksKey)); } isValid() { return !this.hasErrors(); } }