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 }); }