authorgravatar for me@maxkatz.meMax Katz <me@maxkatz.me> 2026-07-27 20:42:33+04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-07-27 12:42:33-04:00
log32843c2551bd5832d436ef46bff5ab1198cdc39c
tree4b6246fe91b7b686f2a6273c06830cd57d471c84
parentda11342e03dbf2bf46058d66b9c4f4eab8047a5a
signature Signed by PGP key B5690EEEBB952194

fix(web): constrain branch toolbar context (#4657)


3 files changed, 20 insertions(+), 10 deletions(-)

apps/web/src/components/BranchToolbar.tsx+1-1
......@@ -321,7 +321,7 @@ export const BranchToolbar = memo(function BranchToolbar({
321321 onUsePreviousWorktree={onUsePreviousWorktree}
322322 />
323323 ) : (
324 <div className="flex min-w-0 shrink-0 items-center gap-1">
324 <div className="flex min-w-0 flex-1 items-center gap-1">
325325 {showEnvironmentIndicator && availableEnvironments && (
326326 <>
327327 <BranchToolbarEnvironmentSelector
apps/web/src/components/BranchToolbarEnvModeSelector.tsx+7-2
......@@ -50,7 +50,7 @@ export const BranchToolbarEnvModeSelector = memo(function BranchToolbarEnvModeSe
5050
5151 if (envLocked) {
5252 return (
53 <span className="inline-flex items-center gap-1 border border-transparent px-[calc(--spacing(3)-1px)] text-sm font-medium text-muted-foreground/70 sm:text-xs">
53 <span className="inline-flex shrink-0 items-center gap-1 border border-transparent px-[calc(--spacing(3)-1px)] text-sm font-medium text-muted-foreground/70 sm:text-xs">
5454 {activeWorktreePath ? (
5555 <>
5656 <FolderGitIcon className="size-3" />
......@@ -79,7 +79,12 @@ export const BranchToolbarEnvModeSelector = memo(function BranchToolbarEnvModeSe
7979 }}
8080 items={envModeItems}
8181 >
82 <SelectTrigger variant="ghost" size="xs" className="font-medium" aria-label="Workspace">
82 <SelectTrigger
83 variant="ghost"
84 size="xs"
85 className="shrink-0 font-medium"
86 aria-label="Workspace"
87 >
8388 {effectiveEnvMode === "worktree" ? (
8489 <FolderGit2Icon className="size-3" />
8590 ) : activeWorktreePath ? (
apps/web/src/components/BranchToolbarEnvironmentSelector.tsx+12-7
......@@ -43,13 +43,13 @@ export const BranchToolbarEnvironmentSelector = memo(function BranchToolbarEnvir
4343
4444 if (envLocked || onEnvironmentChange === undefined) {
4545 return (
46 <span className="inline-flex items-center gap-1 border border-transparent px-[calc(--spacing(3)-1px)] text-sm font-medium text-muted-foreground/70 sm:text-xs">
46 <span className="inline-flex min-w-0 max-w-full items-center gap-1 border border-transparent px-[calc(--spacing(3)-1px)] text-sm font-medium text-muted-foreground/70 sm:text-xs">
4747 {activeEnvironment?.isPrimary ? (
48 <MonitorIcon className="size-3" />
48 <MonitorIcon className="size-3 shrink-0" />
4949 ) : (
50 <CloudIcon className="size-3" />
50 <CloudIcon className="size-3 shrink-0" />
5151 )}
52 {activeEnvironment?.label ?? "Run on"}
52 <span className="truncate">{activeEnvironment?.label ?? "Run on"}</span>
5353 </span>
5454 );
5555 }
......@@ -61,11 +61,16 @@ export const BranchToolbarEnvironmentSelector = memo(function BranchToolbarEnvir
6161 onValueChange={(value) => onEnvironmentChange(value as EnvironmentId)}
6262 items={environmentItems}
6363 >
64 <SelectTrigger variant="ghost" size="xs" className="font-medium" aria-label="Run on">
64 <SelectTrigger
65 variant="ghost"
66 size="xs"
67 className="min-w-0 max-w-full font-medium"
68 aria-label="Run on"
69 >
6570 {activeEnvironment?.isPrimary ? (
66 <MonitorIcon className="size-3" />
71 <MonitorIcon className="size-3 shrink-0" />
6772 ) : (
68 <CloudIcon className="size-3" />
73 <CloudIcon className="size-3 shrink-0" />
6974 )}
7075 <SelectValue />
7176 </SelectTrigger>