From afe9b9727415ea046dc08990f981e00e27ec4a43 Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Mon, 23 Mar 2026 10:39:46 +1000 Subject: [PATCH] fix(app): restore keyboard project switching in open sidebar (#18682) --- .../sidebar/sidebar-popover-actions.spec.ts | 38 +++++++++++++++++++ packages/ui/src/components/hover-card.tsx | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts b/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts index 4dc5e6acd..1317d2bb6 100644 --- a/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts +++ b/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts @@ -1,5 +1,6 @@ import { test, expect } from "../fixtures" import { + defocus, cleanupSession, cleanupTestProject, closeSidebar, @@ -78,3 +79,40 @@ test("open sidebar project popover stays closed after clicking avatar", async ({ await cleanupTestProject(other) } }) + +test("open sidebar project switch activates on first tabbed enter", async ({ page, withProject }) => { + await page.setViewportSize({ width: 1400, height: 800 }) + + const other = await createTestProject() + const slug = dirSlug(other) + + try { + await withProject( + async () => { + await openSidebar(page) + await defocus(page) + + const project = page.locator(projectSwitchSelector(slug)).first() + + await expect(project).toBeVisible() + + let hit = false + for (let i = 0; i < 20; i++) { + hit = await project.evaluate((el) => { + return el.matches(":focus") || !!el.parentElement?.matches(":focus") + }) + if (hit) break + await page.keyboard.press("Tab") + } + + expect(hit).toBe(true) + + await page.keyboard.press("Enter") + await waitSession(page, { directory: other }) + }, + { extra: [other] }, + ) + } finally { + await cleanupTestProject(other) + } +}) diff --git a/packages/ui/src/components/hover-card.tsx b/packages/ui/src/components/hover-card.tsx index 210fd5416..8330375aa 100644 --- a/packages/ui/src/components/hover-card.tsx +++ b/packages/ui/src/components/hover-card.tsx @@ -13,7 +13,7 @@ export function HoverCard(props: HoverCardProps) { return ( - + {local.trigger}