From fcdc0841b080f5eff4de0fbabdff2ca2082d8629 Mon Sep 17 00:00:00 2001 From: Malar Kannan Date: Mon, 31 Jul 2017 19:34:55 +0530 Subject: [PATCH] fixing new entries addition --- src/LexAccessors.tsx | 11 ++++++++--- src/LexEditor.tsx | 3 ++- src/reducers.tsx | 3 ++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/LexAccessors.tsx b/src/LexAccessors.tsx index dea30e0..9d753ee 100644 --- a/src/LexAccessors.tsx +++ b/src/LexAccessors.tsx @@ -30,10 +30,15 @@ function simpleAttrAccessor(attrPred: any) { let lexItem = _.cloneDeep(li); let allProps = _.get(lexItem, lens, []); if (allProps.length > 0) { - let prop = _.filter(allProps, (m) => { - return pred(m); + let keepProps = _.filter(allProps, (m) => { + return !pred(m); }); - _.set(prop, '[0]._', value); + _.set(lexItem, lens, _.concat(keepProps, [def(value)])); + // if (prop.length > 0) { + // _.set(prop, '[0]._', value); + // } else { + // + // } } else { _.set(lexItem, lens, [def(value)]); } diff --git a/src/LexEditor.tsx b/src/LexEditor.tsx index 93a6056..b93e6d1 100644 --- a/src/LexEditor.tsx +++ b/src/LexEditor.tsx @@ -82,8 +82,9 @@ function LexMatches(params: any) { ); } else { + let fm = props.fieldMetaMap; let editEntries = props.matchedEntries.map((mObj: any) => { - let uniqueKey = mObj.guid[0] + '#' + mObj.$.id; + let uniqueKey = fm.guid.get(mObj) + '#' + fm.lang.get(mObj); return ( (newState, 'document.lexicon[0].item'); let entGuid = _.find(entries, (o) => _.isEqual(_.get(o, '$.guid'), guid)); - let entLang = _.get(entGuid, 'entry'); + let entLang = _.get(entGuid, 'entry', []); + // TODO handle new entries let entlang = _.find(entLang, (o) => _.isEqual(_.get(o, 'lang[0].$.id'), lang)); _.set(entlang, 'lang[0]', action.lexItem); return newState;