From db42adf1bf33c2f27af8d83ef3c89110aedeb47e Mon Sep 17 00:00:00 2001 From: dotta Date: Sun, 22 Mar 2026 06:33:49 -0500 Subject: [PATCH] Make agent instructions tab responsive on mobile On mobile, the two-panel file browser + editor layout now stacks vertically with a toggleable file panel. The draggable separator is hidden, and selecting a file auto-closes the panel to maximize editor space. Co-Authored-By: Paperclip Co-Authored-By: Claude Opus 4.6 --- ui/src/pages/AgentDetail.tsx | 90 +++++++++++++++++++++++++----------- 1 file changed, 63 insertions(+), 27 deletions(-) diff --git a/ui/src/pages/AgentDetail.tsx b/ui/src/pages/AgentDetail.tsx index 2c5297d0..ebb6a667 100644 --- a/ui/src/pages/AgentDetail.tsx +++ b/ui/src/pages/AgentDetail.tsx @@ -69,6 +69,7 @@ import { ChevronDown, ArrowLeft, HelpCircle, + FolderOpen, } from "lucide-react"; import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "@/components/ui/collapsible"; import { TooltipProvider } from "@/components/ui/tooltip"; @@ -1589,7 +1590,9 @@ function PromptsTab({ }) { const queryClient = useQueryClient(); const { selectedCompanyId } = useCompany(); + const { isMobile } = useSidebar(); const [selectedFile, setSelectedFile] = useState("AGENTS.md"); + const [showFilePanel, setShowFilePanel] = useState(false); const [draft, setDraft] = useState(null); const [bundleDraft, setBundleDraft] = useState<{ mode: "managed" | "external"; @@ -2042,21 +2045,38 @@ function PromptsTab({ -
-
+
+

Files

- {!showNewFileInput && ( - - )} +
+ {!showNewFileInput && ( + + )} + {isMobile && ( + + )} +
{showNewFileInput && (
@@ -2121,6 +2141,7 @@ function PromptsTab({ onSelectFile={(filePath) => { setSelectedFile(filePath); if (!fileOptions.includes(filePath)) setDraft(""); + if (isMobile) setShowFilePanel(false); }} onToggleCheck={() => {}} showCheckboxes={false} @@ -2151,22 +2172,37 @@ function PromptsTab({
{/* Draggable separator */} -
+ {!isMobile && ( +
+ )} -
+
-
-

{selectedOrEntryFile}

-

- {selectedFileExists - ? selectedFileSummary?.deprecated - ? "Deprecated virtual file" - : `${selectedFileDetail?.language ?? "text"} file` - : "New file in this bundle"} -

+
+ {isMobile && ( + + )} +
+

{selectedOrEntryFile}

+

+ {selectedFileExists + ? selectedFileSummary?.deprecated + ? "Deprecated virtual file" + : `${selectedFileDetail?.language ?? "text"} file` + : "New file in this bundle"} +

+
{selectedFileExists && !selectedFileSummary?.deprecated && selectedOrEntryFile !== currentEntryFile && (