From 7528419172d126d829f43218024edc5626490e57 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Fri, 27 Feb 2026 13:26:15 +0800 Subject: app: allow providing username and password when connecting to remote server (#14872) --- packages/app/src/components/server/server-row.tsx | 82 +++++++++++++++++------ 1 file changed, 60 insertions(+), 22 deletions(-) (limited to 'packages/app/src/components/server') diff --git a/packages/app/src/components/server/server-row.tsx b/packages/app/src/components/server/server-row.tsx index 12dcebfa9..5bb290ec3 100644 --- a/packages/app/src/components/server/server-row.tsx +++ b/packages/app/src/components/server/server-row.tsx @@ -1,5 +1,6 @@ import { Tooltip } from "@opencode-ai/ui/tooltip" import { + children, createEffect, createMemo, createSignal, @@ -9,7 +10,7 @@ import { type ParentProps, Show, } from "solid-js" -import { type ServerConnection, serverDisplayName } from "@/context/server" +import { type ServerConnection, serverName } from "@/context/server" import type { ServerHealth } from "@/utils/server-health" interface ServerRowProps extends ParentProps { @@ -20,13 +21,14 @@ interface ServerRowProps extends ParentProps { versionClass?: string dimmed?: boolean badge?: JSXElement + showCredentials?: boolean } export function ServerRow(props: ServerRowProps) { const [truncated, setTruncated] = createSignal(false) let nameRef: HTMLSpanElement | undefined let versionRef: HTMLSpanElement | undefined - const name = createMemo(() => serverDisplayName(props.conn)) + const name = createMemo(() => serverName(props.conn)) const check = () => { const nameTruncated = nameRef ? nameRef.scrollWidth > nameRef.clientWidth : false @@ -52,35 +54,71 @@ export function ServerRow(props: ServerRowProps) { const tooltipValue = () => ( - {name()} + {serverName(props.conn, true)} - {props.status?.version} + v{props.status?.version} ) + const badge = children(() => props.badge) + return ( - +
-
- - {name()} - - - - {props.status?.version} - - - {props.badge} +
+
+ + {name()} + + + + v{props.status?.version} + + + } + > + {(badge) => badge()} + +
+ + {(conn) => ( +
+ + {conn().http.username ? ( + {conn().http.username} + ) : ( + no username + )} + + {conn().http.password && ••••••••} +
+ )} +
+
{props.children}
) } + +export function ServerHealthIndicator(props: { health?: ServerHealth }) { + return ( +
+ ) +} -- cgit v1.2.3