diff --git a/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/TaskTabs.tsx b/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/TaskTabs.tsx index e34c0ef5666..698d9fbac3b 100644 --- a/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/TaskTabs.tsx +++ b/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/TaskTabs.tsx @@ -21,7 +21,7 @@ export const TaskTabs: React.FC = ({ }) => { const selectedWorktree = worktrees.find((wt) => wt.id === selectedWorktreeId); const canCreatePR = selectedWorktree && !selectedWorktree.isPending; - const hasPR = selectedWorktree && selectedWorktree.prUrl; + const hasPR = selectedWorktree?.prUrl; return (
= ({ {onModeChange && } -
- {worktrees.map((worktree) => ( - onWorktreeSelect(worktree.id)} - /> - ))} +
+ {worktrees.map((worktree, index) => { + const isSelected = selectedWorktreeId === worktree.id; + const prevWorktree = index > 0 ? worktrees[index - 1] : null; + const prevIsSelected = prevWorktree?.id === selectedWorktreeId; + const showDivider = + prevWorktree !== null && !isSelected && !prevIsSelected; + + return ( +
+ {showDivider && ( +
+ )} + onWorktreeSelect(worktree.id)} + /> +
+ ); + })}
diff --git a/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/WorktreeTabButton.tsx b/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/WorktreeTabButton.tsx index 3d436c3d00c..f934391939e 100644 --- a/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/WorktreeTabButton.tsx +++ b/apps/desktop/src/renderer/screens/main/components/Layout/TaskTabs/WorktreeTabButton.tsx @@ -26,11 +26,11 @@ export const WorktreeTabButton: React.FC = ({ onClick={onClick} disabled={isPending} className={` - flex items-center gap-2 px-3 h-8 rounded-t-md transition-all border-t border-x + flex items-center gap-2 px-3 h-8 rounded-t-md transition-all ${ isSelected - ? "bg-neutral-900 text-white border-neutral-700 -mb-px" - : "bg-neutral-800/50 text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800 border-transparent" + ? "bg-neutral-900 text-white border-t border-x border-r border-neutral-700 -mb-px" + : "bg-transparent text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800/50" } ${isPending ? "opacity-70 cursor-wait" : ""} `} diff --git a/apps/desktop/src/renderer/screens/main/components/Sidebar/components/ModeCarousel/components/AnimatedBackground/AnimatedBackground.tsx b/apps/desktop/src/renderer/screens/main/components/Sidebar/components/ModeCarousel/components/AnimatedBackground/AnimatedBackground.tsx index f878db6c4fc..d159e972e91 100644 --- a/apps/desktop/src/renderer/screens/main/components/Sidebar/components/ModeCarousel/components/AnimatedBackground/AnimatedBackground.tsx +++ b/apps/desktop/src/renderer/screens/main/components/Sidebar/components/ModeCarousel/components/AnimatedBackground/AnimatedBackground.tsx @@ -9,13 +9,13 @@ export function AnimatedBackground({ progress, modeCount, }: AnimatedBackgroundProps) { - // Calculate the width of each button (36px = h-9 w-9) + gap (4px = gap-1) - const buttonWidth = 36; + // Calculate the width of each button (32px = h-8 w-8) + gap (4px = gap-1) + const buttonWidth = 32; const gap = 4; const totalButtonWidth = buttonWidth + gap; // Transform progress (0-1) to translateX position - // For 2 modes: 0 -> 0px, 1 -> 40px (buttonWidth + gap) + // For 2 modes: 0 -> 0px, 1 -> 36px (buttonWidth + gap) const translateX = useTransform( progress, [0, modeCount - 1], @@ -24,9 +24,8 @@ export function AnimatedBackground({ return ( +
- - - - -

{modeLabels[mode]}

-
- + ); })}