From b31f7f4b876ab15c61d680c06ca30f62e5cf6d40 Mon Sep 17 00:00:00 2001 From: Dean Date: Tue, 18 Oct 2022 11:06:18 +0100 Subject: [PATCH] Refactor for multiselect value parsing and a fix to ensure default values are parsed before reaching the picker --- packages/bbui/src/Form/Core/Multiselect.svelte | 15 ++++++--------- .../client/src/components/app/forms/Field.svelte | 10 +++++++++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/bbui/src/Form/Core/Multiselect.svelte b/packages/bbui/src/Form/Core/Multiselect.svelte index 3fbbaf5d4a..c76f5324c5 100644 --- a/packages/bbui/src/Form/Core/Multiselect.svelte +++ b/packages/bbui/src/Form/Core/Multiselect.svelte @@ -16,16 +16,13 @@ export let autoWidth = false $: streamed = Array.isArray(value) - ? value.reduce((acc, ele) => { - if (typeof ele === "string") { - let temp = ele.trim() - if (!temp) { - return acc - } + ? value.reduce((acc, entry) => { + if (typeof ele === "string" && entry.trim() === "") { + return acc } - let processedOpt = ele.toString() - if (options.indexOf(processedOpt) > -1) { - acc.push(ele.toString()) + let processedOption = String(entry) + if (options.indexOf(processedOption) > -1) { + acc.push(processedOption) } return acc }, []) diff --git a/packages/client/src/components/app/forms/Field.svelte b/packages/client/src/components/app/forms/Field.svelte index 9a91ea5b2d..1203630de5 100644 --- a/packages/client/src/components/app/forms/Field.svelte +++ b/packages/client/src/components/app/forms/Field.svelte @@ -27,11 +27,19 @@ $: formField = formApi?.registerField( field, type, - defaultValue, + parseDefaultValue(defaultValue), disabled, validation, formStep ) + + const parseDefaultValue = defaultValue => { + if (Array.isArray(defaultValue) && type === "array") { + return defaultValue.map(val => String(val)) + } + return defaultValue + } + $: schemaType = fieldSchema?.type !== "formula" ? fieldSchema?.type : "string" // Focus label when editing