Repository URL to install this package:
|
Version:
3.12.2 ▾
|
import checkFieldValidation from './checkFieldValidation';
/**
* @param {object} errors
* @param {string} key
* @param {string} [regionalVariantFieldKey]
* @param {any} fieldValue
* @param {regexp} [fieldValidation]
* @param {boolean} [isFieldRequired]
* @param {(boolean|string[])} [canEdit=true]
*/
function updateValidationErrors(errors, key, regionalVariantFieldKey, fieldValue, fieldValidation, isFieldRequired) {
var canEdit = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : true;
var errorsClone = JSON.parse(JSON.stringify(errors || {}));
var editable = canEdit === true || regionalVariantFieldKey && Array.isArray(canEdit) && canEdit.indexOf(regionalVariantFieldKey) > -1;
var isValid = checkFieldValidation(fieldValue, fieldValidation, isFieldRequired, editable);
if (isValid === true) {
// Valid, remove error
if (regionalVariantFieldKey) {
if (errorsClone[key] && Object.prototype.hasOwnProperty.call(errorsClone[key], regionalVariantFieldKey)) {
delete errorsClone[key][regionalVariantFieldKey];
if (!Object.keys(errorsClone[key]).length) {
// Object empty, need to remove
delete errorsClone[key];
}
}
} else {
if (Object.prototype.hasOwnProperty.call(errorsClone, key)) {
delete errorsClone[key];
}
}
} else {
// Not valid, add error
if (regionalVariantFieldKey) {
errorsClone[key] = errorsClone[key] || {};
errorsClone[key][regionalVariantFieldKey] = isValid || true;
} else {
errorsClone[key] = isValid || true;
}
}
return errorsClone;
}
export default updateValidationErrors;