From 4a1e969b7ce2cdfda307d9c55da9d0be6a410dc2 Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 6 Sep 2023 09:09:43 +0100 Subject: [PATCH] PR Feedback and fixes for the edit field popover --- .../src/builderStore/store/frontend.js | 4 +-- .../FieldConfiguration.svelte | 29 ++++++++++--------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js index 106847ea0a..13b28a3572 100644 --- a/packages/builder/src/builderStore/store/frontend.js +++ b/packages/builder/src/builderStore/store/frontend.js @@ -1250,9 +1250,7 @@ export const getFrontendStore = () => { setting => name === setting.resetOn ) resetFields?.forEach(setting => { - if (component[setting.key]) { - component[setting.key] = null - } + component[setting.key] = null }) if ( diff --git a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte index e41b41642b..4c4fa0b7b7 100644 --- a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte +++ b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte @@ -21,6 +21,9 @@ let fieldList let schema let cachedValue + let options + let sanitisedValue + let unconfigured $: bindings = getBindableProperties($selectedScreen, componentInstance._id) $: actionType = componentInstance.actionType @@ -36,15 +39,22 @@ $: datasource = getDatasourceForProvider($currentAsset, componentInstance) $: resourceId = datasource.resourceId || datasource.tableId - $: if (!isEqual(value, cachedValue) || resourceId) { + $: if (!isEqual(value, cachedValue)) { cachedValue = cloneDeep(value) - schema = getSchema($currentAsset, datasource) } - $: options = Object.keys(schema || {}) - $: sanitisedValue = getValidColumns(convertOldFieldFormat(value), options) - $: updateSanitsedFields(sanitisedValue) - $: unconfigured = buildUnconfiguredOptions(schema, sanitisedFields) + const updateState = value => { + schema = getSchema($currentAsset, datasource) + options = Object.keys(schema || {}) + sanitisedValue = getValidColumns(convertOldFieldFormat(value), options) + updateSanitsedFields(sanitisedValue) + unconfigured = buildUnconfiguredOptions(schema, sanitisedFields) + fieldList = [...sanitisedFields, ...unconfigured] + .map(buildSudoInstance) + .filter(x => x != null) + } + + $: updateState(cachedValue, resourceId) // Builds unused ones only const buildUnconfiguredOptions = (schema, selected) => { @@ -98,7 +108,6 @@ if (instance._component) { return instance } - const type = getComponentForField(instance.field, schema) if (!type) { return null @@ -119,12 +128,6 @@ return { ...instance, ...pseudoComponentInstance } } - $: if (sanitisedFields) { - fieldList = [...sanitisedFields, ...unconfigured] - .map(buildSudoInstance) - .filter(x => x != null) - } - const processItemUpdate = e => { const updatedField = e.detail const parentFieldsUpdated = fieldList ? cloneDeep(fieldList) : []