From cf5dbfe055d77e8ebdbc6a23f51636215adc108b Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Thu, 22 Sep 2022 09:40:45 +0100 Subject: [PATCH] Handle valueType change --- .../controls/FilterEditor/FilterDrawer.svelte | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte index 9bd66a4cb1..553db99fc5 100644 --- a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte +++ b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte @@ -100,13 +100,37 @@ } if ( operator === Constants.OperatorOptions.In.value && - !Array.isArray(expression.value) + !Array.isArray(expression.value) && + expression.valueType === "Value" ) { if (expression.value) { expression.value = [expression.value] } else { expression.value = [] } + } else if ( + operator !== Constants.OperatorOptions.In.value && + Array.isArray(expression.value) + ) { + expression.value = null + } + } + + const onValueTypeChange = (expression, valueType) => { + if (Array.isArray(expression.value) && valueType === "Binding") { + expression.value = null + } else if ( + expression.operator === Constants.OperatorOptions.In.value && + !Array.isArray(expression.value) && + valueType === "Value" + ) { + if (typeof expression.value === "string") { + expression.value = expression.value.split(",") + } else if (expression.value) { + expression.value = [expression.value] + } else { + expression.value = [] + } } } @@ -167,6 +191,7 @@ options={valueTypeOptions} bind:value={filter.valueType} placeholder={null} + on:change={e => onValueTypeChange(filter, e.detail)} /> {#if filter.valueType === "Binding"}