From 7831096d4001cfaec72e5dbcf604f50bd75ad3f1 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Thu, 13 Aug 2026 00:28:37 -0700 Subject: [PATCH] fix(worktrees): keep add location form inline --- .../sidebar/WorktreeVisibilityDialog.test.tsx | 6 +- .../sidebar/WorktreeVisibilitySourceList.tsx | 101 ++++++++---------- 2 files changed, 49 insertions(+), 58 deletions(-) diff --git a/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx b/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx index 84d4a3db187..dcb17a988f3 100644 --- a/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx +++ b/src/renderer/src/components/sidebar/WorktreeVisibilityDialog.test.tsx @@ -583,9 +583,13 @@ describe('WorktreeVisibilityDialog', () => { it('adds custom locations disabled by default', async () => { await renderDialog() - await click(buttonWithText('Add location')) const input = document.querySelector('#custom-worktree-root') expect(input).not.toBeNull() + expect( + document.querySelector('section[aria-labelledby="worktree-sources-heading"]')?.contains(input) + ).toBe(true) + expect(input?.closest('form')?.getAttribute('aria-label')).toBe('Add location') + expect(input?.closest('form')?.textContent).not.toContain('Add location') await act(async () => { Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set?.call( input, diff --git a/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx b/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx index fee53f2f842..fd61a40e683 100644 --- a/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx +++ b/src/renderer/src/components/sidebar/WorktreeVisibilitySourceList.tsx @@ -1,9 +1,8 @@ import React, { useMemo, useState } from 'react' -import { Folder, Grid2X2, Plus, SquareTerminal, Trash2 } from 'lucide-react' +import { Folder, Grid2X2, SquareTerminal, Trash2 } from 'lucide-react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' -import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { Switch } from '@/components/ui/switch' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { translate } from '@/i18n/i18n' @@ -105,7 +104,6 @@ export default function WorktreeVisibilitySourceList({ onRemove, onToggle }: Props): React.JSX.Element { - const [addOpen, setAddOpen] = useState(false) const [rootPath, setRootPath] = useState('') const [inputError, setInputError] = useState(null) const customSources = normalizeCustomWorktreeVisibilitySources( @@ -132,7 +130,6 @@ export default function WorktreeVisibilitySourceList({ const added = await onAdd(rootPath) if (added) { setRootPath('') - setAddOpen(false) return } setInputError( @@ -242,61 +239,51 @@ export default function WorktreeVisibilitySourceList({ ) })} - - - - - - void handleAdd(event)} > -
void handleAdd(event)}> -
-
+

+ + ) }