import { connectionStatusText, type EnvironmentConnectionPresentation,} from "@t3tools/client-runtime/connection"; export interface SavedCloudEnvironmentConnectionPresentation { readonly buttonLabel: string; readonly statusText: string; readonly tone: "connected" | "connecting" | "error" | "idle";} /** * Present the live supervisor state for an environment that is already in the * connection catalog. Catalog membership only means the environment is saved; * it does not mean the connection attempt succeeded. */export function presentSavedCloudEnvironmentConnection( connection: EnvironmentConnectionPresentation,): SavedCloudEnvironmentConnectionPresentation { switch (connection.phase) { case "connected": return { buttonLabel: "Connected", statusText: connectionStatusText(connection), tone: "connected", }; case "connecting": return { buttonLabel: "Connecting…", statusText: connectionStatusText(connection), tone: "connecting", }; case "reconnecting": return { buttonLabel: "Reconnecting…", statusText: connectionStatusText(connection), tone: "connecting", }; case "error": return { buttonLabel: "Connection failed", statusText: connectionStatusText(connection), tone: "error", }; case "offline": return { buttonLabel: "Offline", statusText: connectionStatusText(connection), tone: "idle", }; case "available": return { buttonLabel: "Not connected", statusText: connectionStatusText(connection), tone: "idle", }; }}
import {
connectionStatusText,
type EnvironmentConnectionPresentation,
} from "@t3tools/client-runtime/connection";
export interface SavedCloudEnvironmentConnectionPresentation {
readonly buttonLabel: string;
readonly statusText: string;
readonly tone: "connected" | "connecting" | "error" | "idle";
}
/**
* Present the live supervisor state for an environment that is already in the
* connection catalog. Catalog membership only means the environment is saved;
* it does not mean the connection attempt succeeded.
*/
export function presentSavedCloudEnvironmentConnection(
connection: EnvironmentConnectionPresentation,
): SavedCloudEnvironmentConnectionPresentation {
switch (connection.phase) {
case "connected":
return {
buttonLabel: "Connected",
statusText: connectionStatusText(connection),
tone: "connected",
};
case "connecting":
return {
buttonLabel: "Connecting…",
statusText: connectionStatusText(connection),
tone: "connecting",
};
case "reconnecting":
return {
buttonLabel: "Reconnecting…",
statusText: connectionStatusText(connection),
tone: "connecting",
};
case "error":
return {
buttonLabel: "Connection failed",
statusText: connectionStatusText(connection),
tone: "error",
};
case "offline":
return {
buttonLabel: "Offline",
statusText: connectionStatusText(connection),
tone: "idle",
};
case "available":
return {
buttonLabel: "Not connected",
statusText: connectionStatusText(connection),
tone: "idle",
};
}
}