fix: keep terminal route mounted across page switches
Deploy Dashboard (Dev) / deploy-dev (push) Successful in 4m9s

Keep the Terminal component mounted and toggle visibility via CSS so tab state and WebSocket sessions persist when navigating between sidebar pages, while preserving existing per-tab close and full teardown cleanup behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Gan, Jimmy
2026-03-03 09:28:17 +08:00
parent c49d34210d
commit b74d45c621
+7 -3
View File
@@ -146,8 +146,6 @@
<Gitea /> <Gitea />
{:else if page === "files" && hasPageAccess("files")} {:else if page === "files" && hasPageAccess("files")}
<Files /> <Files />
{:else if page === "terminal" && hasPageAccess("terminal")}
<Terminal />
{:else if page === "openclaw" && hasPageAccess("openclaw")} {:else if page === "openclaw" && hasPageAccess("openclaw")}
<OpenClaw /> <OpenClaw />
{:else if page === "chat-digest" && hasPageAccess("chat-digest")} {:else if page === "chat-digest" && hasPageAccess("chat-digest")}
@@ -162,9 +160,15 @@
<CcConnect /> <CcConnect />
{:else if page === "info-engine" && hasPageAccess("dashboard")} {:else if page === "info-engine" && hasPageAccess("dashboard")}
<InfoEngine /> <InfoEngine />
{:else} {:else if page !== "terminal"}
<Dashboard /> <Dashboard />
{/if} {/if}
{#if hasPageAccess("terminal")}
<div class:hidden={page !== "terminal"}>
<Terminal />
</div>
{/if}
</div> </div>
</main> </main>
</div> </div>