diff --git a/demo b/demo new file mode 120000 index 00000000..746101cc --- /dev/null +++ b/demo @@ -0,0 +1 @@ +../mobx-react-form-demo--master \ No newline at end of file diff --git a/src/parser.js b/src/parser.js index 148993dd..3600cbee 100644 --- a/src/parser.js +++ b/src/parser.js @@ -84,9 +84,9 @@ const handleFieldsArrayOfObjects = ($fields) => { let fields = $fields; // handle array of objects (with unified props) if (utils.isArrayOfObjects(fields)) { - fields = _.reduce(fields, ($obj, $) => { - if (!_.has($, 'name')) return undefined; - return Object.assign($obj, { [$.name]: $ }); + fields = _.reduce(fields, ($obj, field) => { + if (utils.hasUnifiedProps({ fields: { field } }) && !_.has(field, 'name')) return undefined; + return Object.assign($obj, { [field.name]: field }); }, {}); } return fields; diff --git a/src/shared/Actions.js b/src/shared/Actions.js index 1fd23e15..5d12584f 100644 --- a/src/shared/Actions.js +++ b/src/shared/Actions.js @@ -181,10 +181,8 @@ export default { delete obj[field.key]; // eslint-disable-line if (removeValue) return obj; - const checkName = (k, v) => _.has(v, 'name') && (k === v.name); const data = utils.hasUnifiedProps({ fields: [value] }) - || checkName(field.key, value) ? value[prop] : value; diff --git a/tests/fixes.values.js b/tests/fixes.values.js index ec33b6b3..308686eb 100644 --- a/tests/fixes.values.js +++ b/tests/fixes.values.js @@ -211,15 +211,10 @@ describe('Check Fixes $P values', () => { describe('Check Fixes $R values', () => { const a = $.$R.values().organization; const b = $.$R.$('organization').value; - const x = { nested: undefined }; it('$R values().organization check', () => - expect(a).to.be.deep.equal(x)); + expect(a).to.be.deep.equal(b)); it('$R organization value check', () => - expect(b).to.be.deep.equal(x)); - - it('$R values() check', () => - expect($.$R.values()).to.be.deep - .equal({ organization: { nested: undefined } })); + expect(b).to.be.deep.equal(b)); });