| ... | ... | @@ -9,7 +9,11 @@ import { AlertTriangleIcon, XIcon } from "lucide-react"; |
| 9 | 9 | |
| 10 | 10 | import type { DraftId } from "../../composerDraftStore"; |
| 11 | 11 | import { useT3ProjectFileScripts } from "../../hooks/useT3ProjectFileScripts"; |
| 12 | | import type { EnvMode, EnvironmentOption } from "../BranchToolbar.logic"; |
| 12 | import { |
| 13 | shouldShowEnvironmentIndicator, |
| 14 | type EnvMode, |
| 15 | type EnvironmentOption, |
| 16 | } from "../BranchToolbar.logic"; |
| 13 | 17 | import { BranchToolbar } from "../BranchToolbar"; |
| 14 | 18 | import { BranchToolbarEnvironmentSelector } from "../BranchToolbarEnvironmentSelector"; |
| 15 | 19 | import GitActionsControl from "../GitActionsControl"; |
| ... | ... | @@ -78,6 +82,14 @@ export function ThreadDetailsPanel(props: ThreadDetailsPanelProps) { |
| 78 | 82 | props.environmentId, |
| 79 | 83 | props.activeProjectScripts ? props.gitCwd : null, |
| 80 | 84 | ); |
| 85 | // Same rule as the composer strip: a lone remote machine still gets a row, |
| 86 | // shown as a static label because there is nothing to pick. |
| 87 | const canPickEnvironment = props.availableEnvironments.length > 1; |
| 88 | const showEnvironment = shouldShowEnvironmentIndicator({ |
| 89 | activeEnvironment: |
| 90 | props.availableEnvironments.find((env) => env.environmentId === props.environmentId) ?? null, |
| 91 | canPickEnvironment, |
| 92 | }); |
| 81 | 93 | const branchToolbarProps = { |
| 82 | 94 | showGitControls: props.isGitRepo, |
| 83 | 95 | environmentId: props.environmentId, |
| ... | ... | @@ -138,7 +150,7 @@ export function ThreadDetailsPanel(props: ThreadDetailsPanelProps) { |
| 138 | 150 | ) : null} |
| 139 | 151 | |
| 140 | 152 | <div className="flex flex-col"> |
| 141 | | {density === "full" && props.availableEnvironments.length > 1 ? ( |
| 153 | {density === "full" && showEnvironment ? ( |
| 142 | 154 | <BranchToolbarEnvironmentSelector |
| 143 | 155 | displayMode="panel" |
| 144 | 156 | autoEnvironmentLabel={props.autoEnvironmentLabel} |
| ... | ... | @@ -146,7 +158,9 @@ export function ThreadDetailsPanel(props: ThreadDetailsPanelProps) { |
| 146 | 158 | envLocked={props.envLocked} |
| 147 | 159 | environmentId={props.environmentId} |
| 148 | 160 | availableEnvironments={props.availableEnvironments} |
| 149 | | onEnvironmentChange={props.onEnvironmentChange} |
| 161 | {...(canPickEnvironment |
| 162 | ? { onEnvironmentChange: props.onEnvironmentChange } |
| 163 | : {})} |
| 150 | 164 | /> |
| 151 | 165 | ) : null} |
| 152 | 166 | |