UNPKG

redux-formo

Version:

An alternate forms framework for Redux+React.

57 lines (44 loc) 1.76 kB
"use strict"; 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.default = function (state, ownProps) { var name = ownProps.name; var getState = ownProps.getState; var formState = getState(name, state); //calculate state var filtering = false; var validating = false; var valid = false; var fieldNames = []; if (formState.fields) { valid = true; Object.keys(formState.fields).forEach(function (fieldName) { fieldNames.push(fieldName); var field = formState.fields[fieldName] || {}; filtering = filtering || Boolean(field.filtering); validating = validating || Boolean(field.validating); valid = valid && Boolean(field.valid); }); } var props = _extends({ //rename some props filterFn: ownProps.filter, validateFn: ownProps.validate, //merge the defaults submitting: false, submitted: false, error: undefined }, formState, { //merge the calculated state filtering: filtering, validating: validating, valid: valid, //returning a new array each time causes the form to always be re-rendered -> hence the Form.shouldComponentUpdate() hook fields: fieldNames //FIXME: this can be removed when we move form filtering/validating/submitting to an action creator }); //delete the field states with the field names so we don't update the form every time a field changes //delete props.fields; return props; }; //# sourceMappingURL=mapStateToProps.js.map