authorgravatar for bear@bearhuddleston.devBear Huddleston <bear@bearhuddleston.dev> 2026-09-26 22:29:54-05:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-26 22:29:54-05:00
logab099178a7b7f9728843e90fc95ed90bb61d710d
tree90dc7223907109cc97d694a0c71a09659c2f20ed
parentcb97415948cc2c0662a5504ccfe7e97981825ed5
signature Signed by PGP key B5690EEEBB952194

fix(web): environment status tooltip resizes when the status changes (#13845)


1 files changed, 16 insertions(+), 8 deletions(-)

apps/web/src/components/settings/ConnectionsSettings.tsx+16-8
...@@ -1549,6 +1549,18 @@ function SavedBackendListRow({...@@ -1549,6 +1549,18 @@ function SavedBackendListRow({
1549 versionMismatch !== null &&1549 versionMismatch !== null &&
1550 (serverUpdateState.status === "idle" || serverUpdateState.status === "failed");1550 (serverUpdateState.status === "idle" || serverUpdateState.status === "failed");
15511551
1552 const statusTooltip = `${
1553 unsupported
1554 ? (environment.connection.error ?? connectionStatusText(environment.connection))
1555 : enabled
1556 ? connectionStatusText(environment.connection)
1557 : "Switched off"
1558 }${
1559 versionMismatch
1560 ? `\nUpdate available: ${versionMismatch.serverVersion} → ${versionMismatch.clientVersion}`
1561 : ""
1562 }`;
1563
1552 return (1564 return (
1553 <EnvironmentRow1565 <EnvironmentRow
1554 kind={machineKind}1566 kind={machineKind}
...@@ -1556,7 +1568,10 @@ function SavedBackendListRow({...@@ -1556,7 +1568,10 @@ function SavedBackendListRow({
1556 dimmed={!enabled}1568 dimmed={!enabled}
1557 subtitle={1569 subtitle={
1558 <Tooltip>1570 <Tooltip>
1571 {/* The status can change while the tooltip is open, and base-ui only
1572 re-measures the popup when the trigger's payload changes. */}
1559 <TooltipTrigger1573 <TooltipTrigger
1574 payload={statusTooltip}
1560 render={1575 render={
1561 <span1576 <span
1562 className={cn(1577 className={cn(
...@@ -1569,14 +1584,7 @@ function SavedBackendListRow({...@@ -1569,14 +1584,7 @@ function SavedBackendListRow({
1569 {subtitleText}1584 {subtitleText}
1570 </TooltipTrigger>1585 </TooltipTrigger>
1571 <TooltipPopup side="top" className="whitespace-pre-wrap">1586 <TooltipPopup side="top" className="whitespace-pre-wrap">
1572 {unsupported1587 {statusTooltip}
1573 ? (environment.connection.error ?? connectionStatusText(environment.connection))
1574 : enabled
1575 ? connectionStatusText(environment.connection)
1576 : "Switched off"}
1577 {versionMismatch
1578 ? `\nUpdate available: ${versionMismatch.serverVersion} → ${versionMismatch.clientVersion}`
1579 : ""}
1580 </TooltipPopup>1588 </TooltipPopup>
1581 </Tooltip>1589 </Tooltip>
1582 }1590 }