tiramisu-react-form
Version:
form component for reactjs
57 lines (38 loc) • 1.53 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.checkChildrenForErrors = undefined;
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _checkChild = require('./checkChild');
var _checkChild2 = _interopRequireDefault(_checkChild);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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; }
function checkChildrenForErrors(children, parentState) {
var errors = {};
if (!children[0]) {
var array = [];
array.push(children);
children = array;
}
children.forEach(function (child) {
if (typeof child.type === 'function') {
if (child.props.children) {
child.props.children.forEach(function (grandChildren) {
errors[grandChildren.props.name] = (0, _checkChild2.default)(grandChildren, parentState[grandChildren.props.name]);
});
} else {
errors[child.props.name] = (0, _checkChild2.default)(child, parentState[child.props.name]);
}
}
});
// only display one error
errors = _lodash2.default.omitBy(errors, function (e) {
return e.length === 0;
});
errors = _defineProperty({}, Object.keys(errors)[0], errors[Object.keys(errors)[0]]);
return errors;
};
exports.checkChildrenForErrors = checkChildrenForErrors;
exports.default = checkChildrenForErrors;
;