diff options
| author | Dax <[email protected]> | 2026-04-26 21:18:26 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-27 01:18:26 +0000 |
| commit | 5f8a72bfc4f83307835d13e3497039dd9f3d3aab (patch) | |
| tree | fecb87c71eff33db0b60462790fb1a51ef03dbb4 | |
| parent | 418a1cf5f31f4f7dfa170873c8a462302473969d (diff) | |
| download | opencode-5f8a72bfc4f83307835d13e3497039dd9f3d3aab.tar.gz opencode-5f8a72bfc4f83307835d13e3497039dd9f3d3aab.zip | |
fix(tui): hide provider checks before onboarding (#24551)
5 files changed, 16 insertions, 10 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index 015b0ed8f..69987b146 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -29,7 +29,8 @@ import { SDKProvider, useSDK } from "@tui/context/sdk" import { StartupLoading } from "@tui/component/startup-loading" import { SyncProvider, useSync } from "@tui/context/sync" import { LocalProvider, useLocal } from "@tui/context/local" -import { DialogModel, useConnected } from "@tui/component/dialog-model" +import { DialogModel } from "@tui/component/dialog-model" +import { useConnected } from "@tui/component/use-connected" import { DialogMcp } from "@tui/component/dialog-mcp" import { DialogStatus } from "@tui/component/dialog-status" import { DialogThemeList } from "@tui/component/dialog-theme-list" diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx index fb6849d72..06723f3c2 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx @@ -8,13 +8,7 @@ import { createDialogProviderOptions, DialogProvider } from "./dialog-provider" import { DialogVariant } from "./dialog-variant" import { useKeybind } from "../context/keybind" import * as fuzzysort from "fuzzysort" - -export function useConnected() { - const sync = useSync() - return createMemo(() => - sync.data.provider.some((x) => x.id !== "opencode" || Object.values(x.models).some((y) => y.cost?.input !== 0)), - ) -} +import { useConnected } from "./use-connected" export function DialogModel(props: { providerID?: string }) { const local = useLocal() diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx index 8e24ffb1b..ebc28847f 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx @@ -14,6 +14,7 @@ import { useKeyboard } from "@opentui/solid" import * as Clipboard from "@tui/util/clipboard" import { useToast } from "../ui/toast" import { isConsoleManagedProvider } from "@tui/util/provider-origin" +import { useConnected } from "./use-connected" const PROVIDER_PRIORITY: Record<string, number> = { opencode: 0, @@ -30,6 +31,7 @@ export function createDialogProviderOptions() { const sdk = useSDK() const toast = useToast() const { theme } = useTheme() + const onboarded = useConnected() const options = createMemo(() => { return pipe( sync.data.provider_next.all, @@ -49,7 +51,7 @@ export function createDialogProviderOptions() { }[provider.id], footer: consoleManaged ? sync.data.console_state.activeOrgName : undefined, category: provider.id in PROVIDER_PRIORITY ? "Popular" : "Other", - gutter: connected ? <text fg={theme.success}>✓</text> : undefined, + gutter: connected && onboarded() ? <text fg={theme.success}>✓</text> : undefined, async onSelect() { if (consoleManaged) return diff --git a/packages/opencode/src/cli/cmd/tui/component/use-connected.tsx b/packages/opencode/src/cli/cmd/tui/component/use-connected.tsx new file mode 100644 index 000000000..700855c11 --- /dev/null +++ b/packages/opencode/src/cli/cmd/tui/component/use-connected.tsx @@ -0,0 +1,9 @@ +import { createMemo } from "solid-js" +import { useSync } from "@tui/context/sync" + +export function useConnected() { + const sync = useSync() + return createMemo(() => + sync.data.provider.some((x) => x.id !== "opencode" || Object.values(x.models).some((y) => y.cost?.input !== 0)), + ) +} diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx index 8ace2fff3..c3a96254e 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx @@ -2,7 +2,7 @@ import { createMemo, Match, onCleanup, onMount, Show, Switch } from "solid-js" import { useTheme } from "../../context/theme" import { useSync } from "../../context/sync" import { useDirectory } from "../../context/directory" -import { useConnected } from "../../component/dialog-model" +import { useConnected } from "../../component/use-connected" import { createStore } from "solid-js/store" import { useRoute } from "../../context/route" |
