import type { GatewayStatus } from "@/lib/gateway/GatewayClient"; import type { StudioGatewayAdapterType } from "@/lib/studio/settings"; import { X } from "lucide-react"; import { resolveGatewayStatusBadgeClass, resolveGatewayStatusLabel } from "./colorSemantics"; type ConnectionPanelProps = { gatewayUrl: string; token: string; selectedAdapterType: StudioGatewayAdapterType; activeAdapterType: StudioGatewayAdapterType; localGatewayUrl?: string | null; localGatewayToken?: string | null; status: GatewayStatus; error: string | null; onGatewayUrlChange: (value: string) => void; onTokenChange: (value: string) => void; onAdapterTypeChange: (value: StudioGatewayAdapterType) => void; onConnect: () => void; onDisconnect: () => void; onClose?: () => void; }; export const ConnectionPanel = ({ gatewayUrl, token, selectedAdapterType, activeAdapterType, localGatewayUrl = null, localGatewayToken = null, status, error, onGatewayUrlChange, onTokenChange, onAdapterTypeChange, onConnect, onDisconnect, onClose, }: ConnectionPanelProps) => { const isConnected = status === "connected"; const isConnecting = status === "connecting"; const tokenOptional = selectedAdapterType === "hermes" || selectedAdapterType === "demo" || selectedAdapterType === "custom"; const applyDemoPreset = () => { onAdapterTypeChange("demo"); }; const applyHermesPreset = () => { onAdapterTypeChange("hermes"); }; const applyCustomPreset = () => { onAdapterTypeChange("custom"); }; const applyOpenClawPreset = () => { onAdapterTypeChange("openclaw"); }; return (
{resolveGatewayStatusLabel(status)}
{onClose ? ( ) : null}
Selected backend: {selectedAdapterType} Active backend: {activeAdapterType} Each backend keeps its own saved URL and token.
{error ? (

{error}

) : null}
); };