From e4b8f1bab4f03b3eb3d6debe18769b245066defd Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Wed, 15 Apr 2026 20:38:53 +0200 Subject: [PATCH] fix: allow app creation without JAR when deploy is disabled canSubmit no longer requires a JAR file when "Create only" is selected. JAR upload and deploy steps are skipped when no file is provided. Co-Authored-By: Claude Opus 4.6 (1M context) --- ui/src/pages/AppsTab/AppsTab.tsx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ui/src/pages/AppsTab/AppsTab.tsx b/ui/src/pages/AppsTab/AppsTab.tsx index 69e70aae..33f981ed 100644 --- a/ui/src/pages/AppsTab/AppsTab.tsx +++ b/ui/src/pages/AppsTab/AppsTab.tsx @@ -251,7 +251,7 @@ function CreateAppView({ environments, selectedEnv }: { environments: Environmen if (p && !ports.includes(p)) { setPorts([...ports, p]); setNewPort(''); } } - const canSubmit = name.trim() && slug.trim() && envId && file; + const canSubmit = name.trim() && slug.trim() && envId && (file || !deploy); async function handleSubmit() { if (!canSubmit) return; @@ -261,9 +261,12 @@ function CreateAppView({ environments, selectedEnv }: { environments: Environmen setStep('Creating app...'); const app = await createApp.mutateAsync({ environmentId: envId, slug: slug.trim(), displayName: name.trim() }); - // 2. Upload JAR - setStep('Uploading JAR...'); - const version = await uploadJar.mutateAsync({ appId: app.slug, file: file! }); + // 2. Upload JAR (if provided) + let version: AppVersion | null = null; + if (file) { + setStep('Uploading JAR...'); + version = await uploadJar.mutateAsync({ appId: app.slug, file }); + } // 3. Save container config setStep('Saving configuration...'); @@ -307,8 +310,8 @@ function CreateAppView({ environments, selectedEnv }: { environments: Environmen environment: selectedEnv, }); - // 5. Deploy (if requested) - if (deploy) { + // 5. Deploy (if requested and JAR was uploaded) + if (deploy && version) { setStep('Starting deployment...'); await createDeployment.mutateAsync({ appId: app.slug, appVersionId: version.id, environmentId: envId }); }