diff --git a/packages/builder/src/builderStore/dataBinding.js b/packages/builder/src/builderStore/dataBinding.js index 3389e20d40..a19646e6fd 100644 --- a/packages/builder/src/builderStore/dataBinding.js +++ b/packages/builder/src/builderStore/dataBinding.js @@ -472,7 +472,7 @@ function bindingReplacement(bindableProperties, textWithBindings, convertTo) { idx = searchString.indexOf(from) if (idx !== -1) { let end = idx + from.length, - searchReplace = Array(binding[convertTo].length).join("*") + searchReplace = Array(binding[convertTo].length + 1).join("*") // blank out parts of the search string searchString = replaceBetween(searchString, idx, end, searchReplace) newBoundValue = replaceBetween( diff --git a/packages/builder/src/components/start/CreateAppModal.svelte b/packages/builder/src/components/start/CreateAppModal.svelte index 29c3ad2022..2c8ae25abe 100644 --- a/packages/builder/src/components/start/CreateAppModal.svelte +++ b/packages/builder/src/components/start/CreateAppModal.svelte @@ -66,6 +66,11 @@ const checkValidity = async (values, validator) => { const obj = object().shape(validator) Object.keys(validator).forEach(key => ($errors[key] = null)) + if (template?.fromFile && values.file == null) { + valid = false + return + } + try { await obj.validate(values, { abortEarly: false }) } catch (validationErrors) { @@ -73,6 +78,7 @@ $errors[error.path] = capitalise(error.message) }) } + valid = await obj.isValid(values) }