From 83539739f8c1cdd7c09da1339a6f9910f9cabe51 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Wed, 27 May 2026 16:59:50 -0700 Subject: [PATCH] Fix left sidebar resize hit target --- src/renderer/src/components/sidebar/index.tsx | 5 ++++- .../components/sidebar/sidebar-resize-handle.test.ts | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts diff --git a/src/renderer/src/components/sidebar/index.tsx b/src/renderer/src/components/sidebar/index.tsx index 97e404983..b7e08dc57 100644 --- a/src/renderer/src/components/sidebar/index.tsx +++ b/src/renderer/src/components/sidebar/index.tsx @@ -18,6 +18,9 @@ import type { VirtualizedScrollAnchor } from '@/hooks/useVirtualizedScrollAnchor const MIN_WIDTH = 220 const MAX_WIDTH = 500 +// Why: match the right sidebar's 4px resize target; a 1px seam is too hard to acquire. +export const WORKTREE_SIDEBAR_RESIZE_HANDLE_CLASS_NAME = + 'absolute top-0 right-0 z-10 h-full w-1 cursor-col-resize transition-colors hover:bg-ring/20 active:bg-ring/30' type SidebarProps = { worktreeScrollOffsetRef: React.MutableRefObject @@ -88,7 +91,7 @@ function Sidebar({ {sidebarOpen && (
)} diff --git a/src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts b/src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts new file mode 100644 index 000000000..567978180 --- /dev/null +++ b/src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts @@ -0,0 +1,10 @@ +import { describe, expect, it } from 'vitest' +import { WORKTREE_SIDEBAR_RESIZE_HANDLE_CLASS_NAME } from './index' + +describe('worktree sidebar resize handle', () => { + it('keeps the hover target as wide as the right sidebar handle', () => { + const classes = new Set(WORKTREE_SIDEBAR_RESIZE_HANDLE_CLASS_NAME.split(/\s+/)) + expect(classes.has('w-1')).toBe(true) + expect(classes.has('w-px')).toBe(false) + }) +})