diff --git a/src/browser/components/ProjectSidebar.tsx b/src/browser/components/ProjectSidebar.tsx index aea8484a7..46159c5d3 100644 --- a/src/browser/components/ProjectSidebar.tsx +++ b/src/browser/components/ProjectSidebar.tsx @@ -23,7 +23,7 @@ import { TooltipWrapper, Tooltip } from "./Tooltip"; import SecretsModal from "./SecretsModal"; import type { Secret } from "@/common/types/secrets"; import { ForceDeleteModal } from "./ForceDeleteModal"; -import { WorkspaceListItem } from "./WorkspaceListItem"; +import { WorkspaceListItem, type WorkspaceSelection } from "./WorkspaceListItem"; import { RenameProvider } from "@/browser/contexts/WorkspaceRenameContext"; import { useProjectContext } from "@/browser/contexts/ProjectContext"; import { ChevronRight, KeyRound } from "lucide-react"; @@ -194,6 +194,31 @@ const ProjectSidebarInner: React.FC = ({ updateSecrets: onUpdateSecrets, } = useProjectContext(); + // Mobile breakpoint for auto-closing sidebar + const MOBILE_BREAKPOINT = 768; + + // Wrapper to close sidebar on mobile after workspace selection + const handleSelectWorkspace = useCallback( + (selection: WorkspaceSelection) => { + onSelectWorkspace(selection); + if (window.innerWidth <= MOBILE_BREAKPOINT && !collapsed) { + onToggleCollapsed(); + } + }, + [onSelectWorkspace, collapsed, onToggleCollapsed] + ); + + // Wrapper to close sidebar on mobile after adding workspace + const handleAddWorkspace = useCallback( + (projectPath: string) => { + onAddWorkspace(projectPath); + if (window.innerWidth <= MOBILE_BREAKPOINT && !collapsed) { + onToggleCollapsed(); + } + }, + [onAddWorkspace, collapsed, onToggleCollapsed] + ); + // Workspace-specific subscriptions moved to WorkspaceListItem component // Store as array in localStorage, convert to Set for usage @@ -427,13 +452,13 @@ const ProjectSidebarInner: React.FC = ({ // Create new workspace for the project of the selected workspace if (matchesKeybind(e, KEYBINDS.NEW_WORKSPACE) && selectedWorkspace) { e.preventDefault(); - onAddWorkspace(selectedWorkspace.projectPath); + handleAddWorkspace(selectedWorkspace.projectPath); } }; window.addEventListener("keydown", handleKeyDown); return () => window.removeEventListener("keydown", handleKeyDown); - }, [selectedWorkspace, onAddWorkspace]); + }, [selectedWorkspace, handleAddWorkspace]); return ( @@ -575,7 +600,7 @@ const ProjectSidebarInner: React.FC = ({ >
-