UNPKG

redux-form

Version:

A higher order component decorator for forms using Redux and React

43 lines (33 loc) 1.5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _invariant = require('invariant'); var _invariant2 = _interopRequireDefault(_invariant); var _plain = require('./structure/plain'); var _plain2 = _interopRequireDefault(_plain); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var createFormValueSelector = function createFormValueSelector(_ref) { var getIn = _ref.getIn; return function (form) { var getFormState = arguments.length <= 1 || arguments[1] === undefined ? function (state) { return getIn(state, 'form'); } : arguments[1]; (0, _invariant2.default)(form, 'Form value must be specified'); return function (state) { for (var _len = arguments.length, fields = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { fields[_key - 1] = arguments[_key]; } (0, _invariant2.default)(fields.length, 'No fields specified'); return fields.length === 1 ? // only selecting one field, so return its value getIn(getFormState(state), form + '.values.' + fields[0]) : // selecting many fields, so return an object of field values fields.reduce(function (accumulator, field) { var value = getIn(getFormState(state), form + '.values.' + field); return value === undefined ? accumulator : _plain2.default.setIn(accumulator, field, value); }, {}); }; }; }; exports.default = createFormValueSelector;