diff --git a/site/src/pages/AgentsPage/components/Sidebar/SidebarTabView.tsx b/site/src/pages/AgentsPage/components/Sidebar/SidebarTabView.tsx index 01826478bb..bef029e365 100644 --- a/site/src/pages/AgentsPage/components/Sidebar/SidebarTabView.tsx +++ b/site/src/pages/AgentsPage/components/Sidebar/SidebarTabView.tsx @@ -133,7 +133,18 @@ export const SidebarTabView: FC = ({ ? "desktop" : null; - const activeTab = tabs.find((t) => t.id === effectiveTabId) ?? null; + // Unified list of panels for rendering. Includes the desktop + // tab when available so we don't need to special-case it. + const allPanels: { id: string; content: ReactNode }[] = tabs.map((t) => ({ + id: t.id, + content: t.content, + })); + if (desktopChatId) { + allPanels.push({ + id: "desktop", + content: , + }); + } const { ref: tabScrollRef, @@ -313,20 +324,21 @@ export const SidebarTabView: FC = ({ {isExpanded ? : } - {/* Tab content */} -
- {effectiveTabId === "desktop" && desktopChatId ? ( - - ) : ( - activeTab?.content - )} -
+ {/* Tab panels – all stay mounted, only the active one visible. */} + {allPanels.map((panel) => { + const isActive = effectiveTabId === panel.id; + return ( +
+ {panel.content} +
+ ); + })} ); };