Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ Format: weekly entries grouped by feature area.

---

## 2026-04-06 — Split View Polish

### Fixed
- Hide sidebar collapse icon in split view panes (only show in primary/leftmost pane)

---

## 2026-04-06 — Linked Task Navigation Fix

### Fixed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { TabPane } from './tab-pane'
interface SplitLayoutRendererProps {
layout: SplitLayout
path: number[]
showSidebarToggle?: boolean
}

/**
Expand All @@ -21,7 +22,8 @@ const getLayoutDirection = (layout: SplitLayout): SplitDirection => {

export const SplitLayoutRenderer = ({
layout,
path
path,
showSidebarToggle = true
}: SplitLayoutRendererProps): React.JSX.Element | null => {
const { state, dispatch } = useTabs()

Expand All @@ -30,7 +32,11 @@ export const SplitLayoutRenderer = ({
if (!group) return null

return (
<TabPane groupId={layout.tabGroupId} isActive={state.activeGroupId === layout.tabGroupId} />
<TabPane
groupId={layout.tabGroupId}
isActive={state.activeGroupId === layout.tabGroupId}
showSidebarToggle={showSidebarToggle}
/>
)
}

Expand All @@ -47,8 +53,12 @@ export const SplitLayoutRenderer = ({
onResize={handleResize}
minSize={100}
>
<SplitLayoutRenderer layout={layout.first} path={[...path, 0]} />
<SplitLayoutRenderer layout={layout.second} path={[...path, 1]} />
<SplitLayoutRenderer
layout={layout.first}
path={[...path, 0]}
showSidebarToggle={showSidebarToggle}
/>
<SplitLayoutRenderer layout={layout.second} path={[...path, 1]} showSidebarToggle={false} />
</SplitPane>
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ import { cn } from '@/lib/utils'
interface TabPaneProps {
groupId: string
isActive: boolean
showSidebarToggle?: boolean
className?: string
}

export const TabPane = ({
groupId,
isActive,
showSidebarToggle = true,
className
}: TabPaneProps): React.JSX.Element | null => {
const { dispatch } = useTabs()
Expand Down Expand Up @@ -42,7 +44,7 @@ export const TabPane = ({
data-pane-id={groupId}
data-pane-active={isActive}
>
<TabBarWithDrag groupId={groupId} />
<TabBarWithDrag groupId={groupId} showSidebarToggle={showSidebarToggle} />

<div
className={cn(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import { cn } from '@/lib/utils'
interface TabBarWithDragProps {
/** ID of the tab group to display */
groupId: string
/** Whether to show the sidebar collapse toggle (hidden in split panes) */
showSidebarToggle?: boolean
/** Additional CSS classes */
className?: string
}
Expand All @@ -32,6 +34,7 @@ interface TabBarWithDragProps {
*/
export const TabBarWithDrag = ({
groupId,
showSidebarToggle = true,
className
}: TabBarWithDragProps): React.JSX.Element | null => {
const group = useTabGroup(groupId)
Expand Down Expand Up @@ -119,10 +122,11 @@ export const TabBarWithDrag = ({
aria-orientation="horizontal"
data-group-id={groupId}
>
{/* Sidebar toggle */}
<div className="no-drag flex items-center px-2 self-center">
<SidebarTrigger className="text-text-tertiary hover:text-foreground transition-colors duration-150" />
</div>
{showSidebarToggle && (
<div className="no-drag flex items-center px-2 self-center">
<SidebarTrigger className="text-text-tertiary hover:text-foreground transition-colors duration-150" />
</div>
)}

{/* Pinned tabs section (not in sortable context) */}
{pinnedTabs.length > 0 && (
Expand Down
Loading