From 1435f5a6d79d8ec8b8a231b7f861ac5254a7fd62 Mon Sep 17 00:00:00 2001 From: KodekaTeam Date: Mon, 22 Jun 2026 11:26:53 +0700 Subject: [PATCH] fix: detect app-installer .env files through volume mounts --- src/app/globals.css | 17 ++ .../environment/EnvironmentTabPanel.tsx | 102 +++++-- src/server/routes/containers.ts | 285 ++++++++++++------ tests/backend/container-metrics-cache.test.ts | 55 ++++ 4 files changed, 341 insertions(+), 118 deletions(-) diff --git a/src/app/globals.css b/src/app/globals.css index 3c5153a..2d17631 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -716,6 +716,12 @@ body { border: none; outline: none; } +.btn:disabled, +.btn[aria-disabled="true"] { + cursor: not-allowed; + opacity: 0.48; + filter: grayscale(0.25); +} .btn-sm { max-height: 35px; padding: 6px 12px; @@ -733,6 +739,11 @@ body { /* transform: translateY(-1px); */ /* box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4); */ } +.btn-primary:disabled, +.btn-primary[aria-disabled="true"] { + background: rgba(59, 130, 246, 0.18); + color: rgba(255, 255, 255, 0.52); +} .btn-ghost { background: transparent; color: var(--text-secondary); @@ -744,6 +755,12 @@ body { color: var(--text-primary); border-color: var(--border-hover); } +.btn-ghost:disabled, +.btn-ghost[aria-disabled="true"] { + background: transparent; + color: var(--text-muted); + border-color: var(--border); +} .btn-warning { background: rgba(245, 158, 11, 0.15); color: #f59e0b; diff --git a/src/app/projects/[projectId]/environments/[environmentId]/containers/[containerId]/components/environment/EnvironmentTabPanel.tsx b/src/app/projects/[projectId]/environments/[environmentId]/containers/[containerId]/components/environment/EnvironmentTabPanel.tsx index 5c8966a..c617b72 100644 --- a/src/app/projects/[projectId]/environments/[environmentId]/containers/[containerId]/components/environment/EnvironmentTabPanel.tsx +++ b/src/app/projects/[projectId]/environments/[environmentId]/containers/[containerId]/components/environment/EnvironmentTabPanel.tsx @@ -6,6 +6,7 @@ import { CheckCircle2, ClipboardCheck, Loader2, + FileWarning, RotateCcw, Save, ShieldAlert, @@ -159,6 +160,7 @@ export default function EnvironmentTabPanel({ [editorContent], ); const editableSource = getEditableSource(environment.editor.source); + const editorDisabled = !environment.editor.found; const canSave = Boolean(environment.editor.found && environment.editor.path) && editableSource !== null; @@ -235,32 +237,68 @@ export default function EnvironmentTabPanel({ }} >
-