diff --git a/frontend/src/renderer/components/Sidebar.tsx b/frontend/src/renderer/components/Sidebar.tsx index a3a8a6c03..1cc009d00 100644 --- a/frontend/src/renderer/components/Sidebar.tsx +++ b/frontend/src/renderer/components/Sidebar.tsx @@ -13,7 +13,7 @@ import { Sun, Trash2, } from "lucide-react"; -import { useRef, useState, type ReactNode } from "react"; +import { useEffect, useRef, useState, type ReactNode } from "react"; import { attentionZone, newestActiveOrchestrator, @@ -145,8 +145,26 @@ export function Sidebar({ const eventsConnection = useEventsConnection(); const { state, setOpen } = useSidebar(); const isCollapsed = state === "collapsed"; + const [expandedChromeVisible, setExpandedChromeVisible] = useState(!isCollapsed); const theme = useUiStore((s) => s.theme); const toggleTheme = useUiStore((s) => s.toggleTheme); + + useEffect(() => { + if (isCollapsed) { + setExpandedChromeVisible(false); + return; + } + + const reducedMotion = + typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches; + if (reducedMotion) { + setExpandedChromeVisible(true); + return; + } + + const timer = window.setTimeout(() => setExpandedChromeVisible(true), 160); + return () => window.clearTimeout(timer); + }, [isCollapsed]); // Disclosure state: projects are expanded by default; a project id present in // this set is collapsed (sessions hidden). const [collapsedIds, setCollapsedIds] = useState>(() => new Set()); @@ -191,6 +209,7 @@ export function Sidebar({ // (same override as shadcn's header-above-sidebar block). @@ -229,12 +248,12 @@ export function Sidebar({ Expand sidebar · ⌘B )} - + Agent Orchestrator {isNightly && ( Collapse sidebar · ⌘B @@ -261,7 +280,7 @@ export function Sidebar({ {/* Section label (project-sidebar__nav-label) */} -
+
Projects @@ -271,12 +290,12 @@ export function Sidebar({ {/* Tree (project-sidebar__tree) */} {workspaceError ? ( -
+

Could not load projects.

{workspaceError}

) : workspaces.length === 0 ? ( -
+

No projects yet.

Click + above to register a git repo. @@ -307,7 +326,7 @@ export function Sidebar({ 12px top, 0 bottom, content-hugging button). The icon rail keeps the icon-only settings action plus expand toggle (off macOS). */} -

+