diff --git a/packages/web/src/components/ProjectSidebar.tsx b/packages/web/src/components/ProjectSidebar.tsx index bb1b988fb2..749b9329db 100644 --- a/packages/web/src/components/ProjectSidebar.tsx +++ b/packages/web/src/components/ProjectSidebar.tsx @@ -720,7 +720,7 @@ function ProjectSidebarInner({ key={session.id} href={sessionHref} onClick={(e) => { - if (e.metaKey || e.ctrlKey || e.shiftKey || e.button === 1) return; + if (e.metaKey || e.ctrlKey || e.shiftKey) return; e.preventDefault(); navigate(sessionHref, session); }} @@ -830,7 +830,7 @@ function ProjectSidebarInner({ { - if (e.metaKey || e.ctrlKey || e.shiftKey || e.button === 1) return; + if (e.metaKey || e.ctrlKey || e.shiftKey) return; e.preventDefault(); navigate(projectHref); }} @@ -900,8 +900,10 @@ function ProjectSidebarInner({ href={projectHref} prefetch={false} onClick={(e) => { + if (e.metaKey || e.ctrlKey || e.shiftKey) return; + e.preventDefault(); e.stopPropagation(); - onMobileClose?.(); + navigate(projectHref); }} className="project-sidebar__proj-action" aria-label={`Open ${project.name} dashboard`} diff --git a/packages/web/src/components/__tests__/ProjectSidebar.test.tsx b/packages/web/src/components/__tests__/ProjectSidebar.test.tsx index 6f7150c374..197e28e7e0 100644 --- a/packages/web/src/components/__tests__/ProjectSidebar.test.tsx +++ b/packages/web/src/components/__tests__/ProjectSidebar.test.tsx @@ -157,6 +157,21 @@ describe("ProjectSidebar", () => { expect(dashboardLink).toHaveAttribute("href", "/projects/project-2"); }); + it("uses client navigation for the per-row dashboard button", () => { + render( + , + ); + + fireEvent.click(screen.getByRole("link", { name: /Open Project Two dashboard/ })); + + expect(mockPush).toHaveBeenCalledWith("/projects/project-2"); + }); + it("project toggle expands/collapses without navigating", () => { render(