simple-redux-form
Version:
This is simplest redux form
65 lines (59 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.getFieldValue = getFieldValue;
exports.simplifiedVlaues = simplifiedVlaues;
exports.hasSyncErrors = hasSyncErrors;
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/*
This are set of helpers function to make simpleReduxForm work
*/
function getFieldValue(field, formValues) {
if (formValues && formValues[field]) {
return formValues[field].value;
}
return undefined;
}
function simplifiedVlaues(formValues, fields) {
return fields.reduce(function (acc, field) {
return _extends({}, acc, _defineProperty({}, field, getFieldValue(field, formValues)));
}, Object.create(null));
}
function createField(field, _onChange) {
var fieldObject = {
name: field,
touched: false,
onChange: function onChange(_ref) {
var _ref$target = _ref.target;
var type = _ref$target.type;
var checked = _ref$target.checked;
var value = _ref$target.value;
var isCheckbox = type && type.toLowerCase() === 'checkbox';
_onChange(field, isCheckbox ? checked : value);
}
};
return _extends({}, fieldObject, {
setValue: function setValue(value) {
// If custome component set value directly
_onChange(field, value);
}
});
}
exports.createField = createField;
function hasSyncErrors(errors) {
var allErrors = errors;
if (allErrors == null) {
allErrors = {};
}
var hasError = false;
var fieldKeys = Object.keys(allErrors);
for (var i = 0; i < fieldKeys.length; i++) {
if (allErrors[fieldKeys[i]] !== undefined) {
hasError = true;
break;
}
}
return hasError;
}