diff --git a/packages/bbui/src/Form/Core/Multiselect.svelte b/packages/bbui/src/Form/Core/Multiselect.svelte
index 784cee70dc..d6c4dc23ac 100644
--- a/packages/bbui/src/Form/Core/Multiselect.svelte
+++ b/packages/bbui/src/Form/Core/Multiselect.svelte
@@ -1,6 +1,6 @@
get(field).name === name)
}
+ const getDefault = (defaultValue, schema, type) => {
+ // Remove any values not present in the field schema
+ // Convert any values supplied to string
+ if (Array.isArray(defaultValue) && type == "array") {
+ return defaultValue.reduce((acc, entry) => {
+ let processedOption = String(entry)
+ let schemaOptions = schema.constraints.inclusion
+ if (schemaOptions.indexOf(processedOption) > -1) {
+ acc.push(processedOption)
+ }
+ return acc
+ }, [])
+ } else {
+ return defaultValue
+ }
+ }
+
const formApi = {
registerField: (
field,
@@ -153,8 +170,10 @@
table
)
+ const parsedDefault = getDefault(defaultValue, schema?.[field], type)
+
// If we've already registered this field then keep some existing state
- let initialValue = Helpers.deepGet(initialValues, field) ?? defaultValue
+ let initialValue = Helpers.deepGet(initialValues, field) ?? parsedDefault
let initialError = null
let fieldId = `id-${Helpers.uuid()}`
const existingField = getField(field)
@@ -187,11 +206,11 @@
error: initialError,
disabled:
disabled || fieldDisabled || (isAutoColumn && !editAutoColumns),
- defaultValue,
+ defaultValue: parsedDefault,
validator,
lastUpdate: Date.now(),
},
- fieldApi: makeFieldApi(field, defaultValue),
+ fieldApi: makeFieldApi(field, parsedDefault),
fieldSchema: schema?.[field] ?? {},
})