From 05bf2bdd8ea5ef17c0d9e105a72ca70ab5574246 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Wed, 10 Jun 2026 19:28:23 -0700 Subject: [PATCH] UX (#5143) --- .../components/sidebar/SidebarNav.test.tsx | 11 ++ .../src/components/sidebar/SidebarNav.tsx | 55 ++++++--- .../sidebar/SidebarSettingsHelpMenu.test.tsx | 56 ++++++++- .../sidebar/SidebarSettingsHelpMenu.tsx | 110 ++++++++++++++++-- 4 files changed, 206 insertions(+), 26 deletions(-) diff --git a/src/renderer/src/components/sidebar/SidebarNav.test.tsx b/src/renderer/src/components/sidebar/SidebarNav.test.tsx index 6ccf6da2251..5558a512055 100644 --- a/src/renderer/src/components/sidebar/SidebarNav.test.tsx +++ b/src/renderer/src/components/sidebar/SidebarNav.test.tsx @@ -273,6 +273,17 @@ describe('SidebarNav', () => { expect(mocks.updateSettings).toHaveBeenCalledWith({ showMobileButton: false }) }) + it('hides task source shortcuts until the Tasks row is hovered or focused', async () => { + const container = await renderSidebarNav() + + const tasksButton = getButtonByText(container, 'Tasks') + const shortcuts = tasksButton.querySelector('[aria-label="Open GitHub tasks"]')?.parentElement + + expect(shortcuts?.className).toContain('hidden') + expect(shortcuts?.className).toContain('group-hover:flex') + expect(shortcuts?.className).toContain('group-focus-within:flex') + }) + it('hides available Tasks from its sidebar context menu', async () => { const container = await renderSidebarNav() diff --git a/src/renderer/src/components/sidebar/SidebarNav.tsx b/src/renderer/src/components/sidebar/SidebarNav.tsx index 8071ae40f86..d6da2029835 100644 --- a/src/renderer/src/components/sidebar/SidebarNav.tsx +++ b/src/renderer/src/components/sidebar/SidebarNav.tsx @@ -51,7 +51,8 @@ function HideSidebarMenu({ onHide }: { onHide: () => void }): React.JSX.Element - {translate("auto.components.sidebar.SidebarNav.d599269755", "Hide from sidebar")} + {translate('auto.components.sidebar.SidebarNav.d599269755', 'Hide from sidebar')} + ) } @@ -237,7 +238,7 @@ const SidebarNav = React.memo(function SidebarNav() { aria-current={tasksActive ? 'page' : undefined} data-contextual-tour-target="sidebar-tasks" className={cn( - 'flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] font-medium tracking-tight transition-colors', + 'group flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] font-medium tracking-tight transition-colors', tasksActive ? 'bg-worktree-sidebar-accent text-worktree-sidebar-accent-foreground' : 'text-worktree-sidebar-foreground/60 hover:bg-worktree-sidebar-foreground/8', @@ -251,12 +252,17 @@ const SidebarNav = React.memo(function SidebarNav() { )} strokeWidth={tasksActive ? 2.25 : 1.75} /> - {translate("auto.components.sidebar.SidebarNav.fee535205b", "Tasks")} - + + {translate('auto.components.sidebar.SidebarNav.fee535205b', 'Tasks')} + + {visibleTaskProviders.includes('github') ? ( { openTaskPage({ taskSource: 'github' }) }} @@ -267,7 +273,10 @@ const SidebarNav = React.memo(function SidebarNav() { {visibleTaskProviders.includes('gitlab') ? ( { openTaskPage({ taskSource: 'gitlab' }) }} @@ -278,7 +287,10 @@ const SidebarNav = React.memo(function SidebarNav() { {visibleTaskProviders.includes('linear') ? ( { openTaskPage({ taskSource: 'linear' }) }} @@ -289,7 +301,10 @@ const SidebarNav = React.memo(function SidebarNav() { {visibleTaskProviders.includes('jira') ? ( { openTaskPage({ taskSource: 'jira' }) }} @@ -324,7 +339,9 @@ const SidebarNav = React.memo(function SidebarNav() { )} strokeWidth={automationsActive ? 2.25 : 1.75} /> - {translate("auto.components.sidebar.SidebarNav.f323383e9a", "Automations")} + + {translate('auto.components.sidebar.SidebarNav.f323383e9a', 'Automations')} + @@ -349,7 +366,9 @@ const SidebarNav = React.memo(function SidebarNav() { )} strokeWidth={activityActive ? 2.25 : 1.75} /> - {translate("auto.components.sidebar.SidebarNav.9c95e1ce91", "Agents")} + + {translate('auto.components.sidebar.SidebarNav.9c95e1ce91', 'Agents')} + {activityUnreadCount > 0 ? ( {activityUnreadCount} @@ -381,10 +400,13 @@ const SidebarNav = React.memo(function SidebarNav() { )} strokeWidth={mobileActive ? 2.25 : 1.75} /> - {translate("auto.components.sidebar.SidebarNav.1b5c41caee", "Orca Mobile")} + + {translate('auto.components.sidebar.SidebarNav.1b5c41caee', 'Orca Mobile')} + {mobileOnboardingBadge.visible ? ( - {translate("auto.components.sidebar.SidebarNav.c86d83b5c3", "New")} + {translate('auto.components.sidebar.SidebarNav.c86d83b5c3', 'New')} + ) : null} @@ -394,14 +416,19 @@ const SidebarNav = React.memo(function SidebarNav() {