From 1144dbe81cbc05ffbec126138dc6f12c6030df40 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 3 Apr 2020 15:25:05 -0500 Subject: [PATCH] Fix changed detection --- src/containers/Configuration/Configuration.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/containers/Configuration/Configuration.js b/src/containers/Configuration/Configuration.js index 8dbe35d..48e9a55 100644 --- a/src/containers/Configuration/Configuration.js +++ b/src/containers/Configuration/Configuration.js @@ -27,11 +27,21 @@ class Configuration extends IPCContainer { Template: {} }; + checkItemChanged = (itemA, itemB) => { + if (itemA.type === 'string_array') { + if (itemA.value.length !== itemB.value.length) { + return true; + } + return itemA.value.filter(i => !itemB.value.includes(i)).length !== 0; + } + return itemA.value !== itemB.value; + }; + checkSaveRequired = () => { const changedItems = []; let i = 0; for (const item of this.state.ItemList) { - if (this.state.OriginalItemList[i++].value !== item.value) { + if (this.checkItemChanged(this.state.OriginalItemList[i++], item)) { changedItems.push(item); } } @@ -41,7 +51,7 @@ class Configuration extends IPCContainer { const changedObjectItems = []; let j = 0; for (const item of this.state.ObjectLookup[key]) { - if (this.state.OriginalObjectLookup[key][j++].value !== item.value) { + if (this.checkItemChanged(this.state.OriginalObjectLookup[key][j++], item)) { changedObjectItems.push(item); } }