From fe835c5d44592a736ff8e35df8aeaa0ee2b44fcb Mon Sep 17 00:00:00 2001 From: wvffle Date: Sat, 25 Jun 2022 23:04:23 +0000 Subject: [PATCH] Fix library moderation --- front/src/components/library/EditCard.vue | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/front/src/components/library/EditCard.vue b/front/src/components/library/EditCard.vue index 209b0e129..1984fd39d 100644 --- a/front/src/components/library/EditCard.vue +++ b/front/src/components/library/EditCard.vue @@ -291,25 +291,27 @@ export default { const previousState = this.previousState const fields = Object.keys(payload) const self = this - return fields.map((f) => { - const fieldConfig = configs[this.obj.target.type].fields.find(({ id }) => id === f) - const dummyRepr = (v) => { return v } - const getValueRepr = fieldConfig.getValueRepr || dummyRepr - const d = { - id: f, + + return fields.map((field) => { + const fieldConfig = this.configs[this.obj.target.type].fields.find(({ id }) => id === field) + const getValueRepr = fieldConfig.getValueRepr || (v => v) + const result = { + id: field, config: fieldConfig } - if (previousState && previousState[f]) { - d.old = previousState[f] - d.oldRepr = castValue(getValueRepr(d.old.value)) + if (previousState?.[field]) { + result.old = previousState[field] + // TODO (wvffle): Originally it was using just result.old.value though for some reason it returns me the object as result.old now + result.oldRepr = castValue(getValueRepr(result.old.value ?? result.old)) } - d.new = payload[f] - d.newRepr = castValue(getValueRepr(d.new)) - if (d.old) { + result.new = payload[field] + result.newRepr = castValue(getValueRepr(result.new)) + if (result.old) { // we compute the diffs between the old and new values - d.diff = diffWordsWithSpace(d.oldRepr, d.newRepr) + result.diff = diffWordsWithSpace(result.oldRepr, result.newRepr) } - return d + + return result }) } },