From c1c81f8127466a4cd59a16d8658155b1b8faa2d0 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 23 Aug 2026 03:40:40 -0400 Subject: [PATCH] refac --- src/lib/components/chat/ChatControls.svelte | 10 ++-------- .../components/chat/MessageInput/TerminalMenu.svelte | 10 +++++++++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/lib/components/chat/ChatControls.svelte b/src/lib/components/chat/ChatControls.svelte index eef8819106..3b0b176676 100644 --- a/src/lib/components/chat/ChatControls.svelte +++ b/src/lib/components/chat/ChatControls.svelte @@ -67,12 +67,6 @@ const chatContextAvailable = (terminal: any) => chatContext(terminal) !== false; const chatContextNeedsSavedChat = (terminal: any) => chatContext(terminal)?.context_id === 'chat_id'; - function showFilesOnTerminalSelect(largeScreen: boolean) { - activeTab = 'files'; - if (largeScreen) { - showControls.set($settings?.showFilesOnTerminalSelect ?? true); - } - } $: selectedSystemTerminal = ($terminalServers ?? []).find( (t) => t.id && t.id === $selectedTerminalId ); @@ -110,9 +104,9 @@ showControls.set(true); } - // Auto-open Files tab when a terminal is selected (suppress panel open when full-screen) + // Keep Files selected when a terminal is active; opening the panel is handled by selection UI. $: if ($selectedTerminalId && terminalFilesAvailable) { - showFilesOnTerminalSelect(largeScreen); + activeTab = 'files'; } // Clear selected direct terminal if user lost permission diff --git a/src/lib/components/chat/MessageInput/TerminalMenu.svelte b/src/lib/components/chat/MessageInput/TerminalMenu.svelte index b11b52c6ca..0047a13aab 100644 --- a/src/lib/components/chat/MessageInput/TerminalMenu.svelte +++ b/src/lib/components/chat/MessageInput/TerminalMenu.svelte @@ -4,6 +4,7 @@ import { chatId as activeChatId, settings, + showControls, showSettings, terminalServers, selectedTerminalId, @@ -63,6 +64,9 @@ const selectDirect = async (terminal: (typeof directTerminals)[0]) => { const newId = $selectedTerminalId === terminal.url ? null : terminal.url; selectedTerminalId.set(newId); + if (newId && window.matchMedia('(min-width: 1024px)').matches) { + showControls.set($settings?.showFilesOnTerminalSelect ?? true); + } // Enable the selected direct terminal, disable all others const updatedServers = ($settings?.terminalServers ?? []).map((s) => ({ @@ -82,7 +86,11 @@ }; const selectSystem = async (terminal: (typeof systemTerminals)[0]) => { - selectedTerminalId.set($selectedTerminalId === terminal.id ? null : terminal.id); + const newId = $selectedTerminalId === terminal.id ? null : terminal.id; + selectedTerminalId.set(newId); + if (newId && window.matchMedia('(min-width: 1024px)').matches) { + showControls.set($settings?.showFilesOnTerminalSelect ?? true); + } // Disable all direct terminals when switching to a system terminal if ($settings?.terminalServers?.some((s) => s.enabled)) {