UNPKG

tiramisu-react-form

Version:

form component for reactjs

57 lines (38 loc) 1.53 kB
'use strict'; 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;