diff options
| author | Brendan Allan <[email protected]> | 2026-02-20 12:18:39 +0800 |
|---|---|---|
| committer | Brendan Allan <[email protected]> | 2026-02-20 12:18:39 +0800 |
| commit | 1c2416b6deb1eee856d1fddbf08300cf851a19fc (patch) | |
| tree | 39da283d0d2ad02c2c092099bf47ab726ef9244b /packages/desktop/src | |
| parent | d86c10816d75837c8f85e7b1ab0de5ff37ecf77b (diff) | |
| download | opencode-1c2416b6deb1eee856d1fddbf08300cf851a19fc.tar.gz opencode-1c2416b6deb1eee856d1fddbf08300cf851a19fc.zip | |
desktop: don't spawn sidecar if default is localhost server
Diffstat (limited to 'packages/desktop/src')
| -rw-r--r-- | packages/desktop/src/bindings.ts | 2 | ||||
| -rw-r--r-- | packages/desktop/src/index.tsx | 31 |
2 files changed, 18 insertions, 15 deletions
diff --git a/packages/desktop/src/bindings.ts b/packages/desktop/src/bindings.ts index 67816ad41..6d05bfc56 100644 --- a/packages/desktop/src/bindings.ts +++ b/packages/desktop/src/bindings.ts @@ -35,7 +35,9 @@ export type LoadingWindowComplete = null; export type ServerReadyData = { url: string, + username: string | null, password: string | null, + is_sidecar: boolean, }; export type SqliteMigrationProgress = { type: "InProgress"; value: number } | { type: "Done" }; diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx index 98af589dd..4a28e1b49 100644 --- a/packages/desktop/src/index.tsx +++ b/packages/desktop/src/index.tsx @@ -23,7 +23,7 @@ import { relaunch } from "@tauri-apps/plugin-process" import { open as shellOpen } from "@tauri-apps/plugin-shell" import { Store } from "@tauri-apps/plugin-store" import { check, type Update } from "@tauri-apps/plugin-updater" -import { type Accessor, createResource, type JSX, onCleanup, onMount, Show } from "solid-js" +import { createResource, type JSX, onCleanup, onMount, Show } from "solid-js" import { render } from "solid-js/web" import pkg from "../package.json" import { initI18n, t } from "./i18n" @@ -31,7 +31,7 @@ import { UPDATER_ENABLED } from "./updater" import { webviewZoom } from "./webview-zoom" import "./styles.css" import { Channel } from "@tauri-apps/api/core" -import { commands, type InitStep } from "./bindings" +import { commands, ServerReadyData, type InitStep } from "./bindings" import { createMenu } from "./menu" const root = document.getElementById("root") @@ -452,16 +452,19 @@ render(() => { <AppBaseProviders> <ServerGate> {(data) => { - const server: ServerConnection.Sidecar = { - displayName: "Local Server", - type: "sidecar", - variant: "base", - http: { - url: data().url, - username: "opencode", - password: data().password ?? undefined, - }, + const http = { + url: data.url, + username: data.username ?? undefined, + password: data.password ?? undefined, } + const server: ServerConnection.Any = data.is_sidecar + ? { + displayName: "Local Server", + type: "sidecar", + variant: "base", + http, + } + : { type: "http", http } function Inner() { const cmd = useCommand() @@ -485,10 +488,8 @@ render(() => { ) }, root!) -type ServerReadyData = { url: string; password: string | null } - // Gate component that waits for the server to be ready -function ServerGate(props: { children: (data: Accessor<ServerReadyData>) => JSX.Element }) { +function ServerGate(props: { children: (data: ServerReadyData) => JSX.Element }) { const [serverData] = createResource(() => commands.awaitInitialization(new Channel<InitStep>() as any)) return ( @@ -516,7 +517,7 @@ function ServerGate(props: { children: (data: Accessor<ServerReadyData>) => JSX. </div> } > - {(data) => props.children(data)} + {(data) => props.children(data())} </Show> </Show> ) |
