Stabilize sidebar activity toggle placement (#33648)

This commit is contained in:
Jinjing
2026-10-25 15:22:23 -07:00
committed by GitHub
parent 395270ff13
commit c77c3fe3e3
2 changed files with 13 additions and 12 deletions
@@ -56,7 +56,7 @@ const SidebarHeader = React.memo(function SidebarHeader({
)
return (
<div className="mt-2 flex h-8 min-w-0 items-center justify-between gap-1.5 px-2">
<div className="mt-2 flex h-8 min-w-0 shrink-0 items-center justify-between gap-1.5 px-2">
<div className="flex min-w-0 items-center gap-1">
<span
// Truncate localized titles because fixed-width actions cannot shrink inside the short header row.
@@ -163,12 +163,10 @@ const SidebarHeader = React.memo(function SidebarHeader({
</div>
</PopoverContent>
</Popover>
{agentsViewActive ? (
<div ref={activityOptionsTarget} className="flex items-center" />
) : null}
<SidebarHeaderActions
onWorkspaceBoardMenuOpenChange={onWorkspaceBoardMenuOpenChange}
agentsViewActive={agentsViewActive}
activityOptionsTarget={activityOptionsTarget}
/>
</div>
</div>
@@ -78,20 +78,23 @@ function NewWorkspaceButton({
export function SidebarHeaderActions({
onWorkspaceBoardMenuOpenChange,
agentsViewActive = false
agentsViewActive = false,
activityOptionsTarget
}: {
onWorkspaceBoardMenuOpenChange: (open: boolean) => void
agentsViewActive?: boolean
activityOptionsTarget?: React.Ref<HTMLDivElement>
}): React.JSX.Element {
return (
<div className="flex shrink-0 items-center gap-1" data-sidebar-header-actions="">
{/* Activity portals its own options into this slot; retain Add project to avoid shifting other controls. */}
{agentsViewActive ? null : (
<SidebarWorkspaceOptionsMenu
preserveWorkspaceBoardOpen
onMenuOpenChange={onWorkspaceBoardMenuOpenChange}
/>
)}
<div ref={activityOptionsTarget} className="flex size-6 shrink-0 items-center">
{agentsViewActive ? null : (
<SidebarWorkspaceOptionsMenu
preserveWorkspaceBoardOpen
onMenuOpenChange={onWorkspaceBoardMenuOpenChange}
/>
)}
</div>
<AddProjectButton preserveWorkspaceBoardOpen />
<NewWorkspaceButton preserveWorkspaceBoardOpen />
</div>