From a5dae87fa91cd6d496ff7aebd7b4920e997daf6c Mon Sep 17 00:00:00 2001 From: Dean Date: Thu, 29 Jun 2023 16:51:32 +0100 Subject: [PATCH] App update validation updates --- .../src/components/deploy/AppActions.svelte | 2 +- .../components/start/UpdateAppModal.svelte | 21 ++++++++++++++++--- .../builder/src/helpers/validation/yup/app.js | 8 ++++++- .../settings/name-and-url.svelte | 2 +- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/packages/builder/src/components/deploy/AppActions.svelte b/packages/builder/src/components/deploy/AppActions.svelte index 6f12cc2890..a9aa3ff506 100644 --- a/packages/builder/src/components/deploy/AppActions.svelte +++ b/packages/builder/src/components/deploy/AppActions.svelte @@ -348,7 +348,7 @@ name: $store.name, url: $store.url, icon: $store.icon, - devId: $store.appId, + appId: $store.appId, }} onUpdateComplete={async () => { await initialiseApp() diff --git a/packages/builder/src/components/start/UpdateAppModal.svelte b/packages/builder/src/components/start/UpdateAppModal.svelte index 83cd0ad950..5302104a45 100644 --- a/packages/builder/src/components/start/UpdateAppModal.svelte +++ b/packages/builder/src/components/start/UpdateAppModal.svelte @@ -16,6 +16,9 @@ export let app export let onUpdateComplete + $: appIdParts = app.appId ? app.appId?.split("_") : [] + $: appId = appIdParts.slice(-1)[0] + const values = writable({ name: app.name, url: app.url, @@ -35,8 +38,20 @@ const setupValidation = async () => { const applications = svelteGet(apps) - appValidation.name(validation, { apps: applications, currentApp: app }) - appValidation.url(validation, { apps: applications, currentApp: app }) + appValidation.name(validation, { + apps: applications, + currentApp: { + ...app, + appId, + }, + }) + appValidation.url(validation, { + apps: applications, + currentApp: { + ...app, + appId, + }, + }) // init validation const { url } = $values validation.check({ @@ -47,7 +62,7 @@ async function updateApp() { try { - await apps.update(app.devId, { + await apps.update(app.appId, { name: $values.name?.trim(), url: $values.url?.trim(), icon: { diff --git a/packages/builder/src/helpers/validation/yup/app.js b/packages/builder/src/helpers/validation/yup/app.js index 8498255cc9..1947844f63 100644 --- a/packages/builder/src/helpers/validation/yup/app.js +++ b/packages/builder/src/helpers/validation/yup/app.js @@ -52,7 +52,13 @@ export const url = (validation, { apps, currentApp } = { apps: [] }) => { } return !apps .map(app => app.url) - .some(appUrl => appUrl?.toLowerCase() === value.toLowerCase()) + .some(appUrl => { + const url = + appUrl?.[0] === "/" + ? appUrl.substring(1, appUrl.length) + : appUrl + return url?.toLowerCase() === value.toLowerCase() + }) } ) .test("valid-url", "Not a valid URL", value => { diff --git a/packages/builder/src/pages/builder/app/[application]/settings/name-and-url.svelte b/packages/builder/src/pages/builder/app/[application]/settings/name-and-url.svelte index 0ff86d2e4d..54417aef35 100644 --- a/packages/builder/src/pages/builder/app/[application]/settings/name-and-url.svelte +++ b/packages/builder/src/pages/builder/app/[application]/settings/name-and-url.svelte @@ -78,7 +78,7 @@ name: $store.name, url: $store.url, icon: $store.icon, - devId: $store.appId, + appId: $store.appId, }} onUpdateComplete={async () => { await initialiseApp()