From 08fe39db88a9033c6c58d74f80a631bb1b4df4b2 Mon Sep 17 00:00:00 2001 From: Kaan Karaca Date: Mon, 6 Apr 2026 17:08:38 +0300 Subject: [PATCH] fix: hide sidebar toggle in split view secondary panes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thread showSidebarToggle prop through SplitLayoutRenderer → TabPane → TabBarWithDrag. Only the primary (leftmost) pane shows the sidebar collapse icon; secondary split panes show only tabs. --- CHANGELOG.md | 7 +++++++ .../split-view/split-layout-renderer.tsx | 18 ++++++++++++++---- .../src/components/split-view/tab-pane.tsx | 4 +++- .../src/components/tabs/tab-bar-with-drag.tsx | 12 ++++++++---- 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85058a25b..dad57529a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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-05 — Inbox Detail Panel Polish ### Added diff --git a/apps/desktop/src/renderer/src/components/split-view/split-layout-renderer.tsx b/apps/desktop/src/renderer/src/components/split-view/split-layout-renderer.tsx index 6021954cb..41a44e7fa 100644 --- a/apps/desktop/src/renderer/src/components/split-view/split-layout-renderer.tsx +++ b/apps/desktop/src/renderer/src/components/split-view/split-layout-renderer.tsx @@ -6,6 +6,7 @@ import { TabPane } from './tab-pane' interface SplitLayoutRendererProps { layout: SplitLayout path: number[] + showSidebarToggle?: boolean } /** @@ -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() @@ -30,7 +32,11 @@ export const SplitLayoutRenderer = ({ if (!group) return null return ( - + ) } @@ -47,8 +53,12 @@ export const SplitLayoutRenderer = ({ onResize={handleResize} minSize={100} > - - + + ) } diff --git a/apps/desktop/src/renderer/src/components/split-view/tab-pane.tsx b/apps/desktop/src/renderer/src/components/split-view/tab-pane.tsx index d7f9d25c7..f2a5527a6 100644 --- a/apps/desktop/src/renderer/src/components/split-view/tab-pane.tsx +++ b/apps/desktop/src/renderer/src/components/split-view/tab-pane.tsx @@ -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() @@ -42,7 +44,7 @@ export const TabPane = ({ data-pane-id={groupId} data-pane-active={isActive} > - +
{ const group = useTabGroup(groupId) @@ -119,10 +122,11 @@ export const TabBarWithDrag = ({ aria-orientation="horizontal" data-group-id={groupId} > - {/* Sidebar toggle */} -
- -
+ {showSidebarToggle && ( +
+ +
+ )} {/* Pinned tabs section (not in sortable context) */} {pinnedTabs.length > 0 && (