tui: preserve spinner registration (#35292)
This commit is contained in:
parent
a22676720d
commit
7a8e7c88f4
7 changed files with 23 additions and 5 deletions
|
|
@ -1,13 +1,15 @@
|
||||||
/** @jsxImportSource @opentui/solid */
|
/** @jsxImportSource @opentui/solid */
|
||||||
import type { ScrollBoxRenderable } from "@opentui/core"
|
import type { ScrollBoxRenderable } from "@opentui/core"
|
||||||
import { useKeyboard } from "@opentui/solid"
|
import { useKeyboard } from "@opentui/solid"
|
||||||
import "opentui-spinner/solid"
|
import { registerOpencodeSpinner } from "@opencode-ai/tui/component/register-spinner"
|
||||||
import { Show, createMemo, indexArray } from "solid-js"
|
import { Show, createMemo, indexArray } from "solid-js"
|
||||||
import { SPINNER_FRAMES } from "@opencode-ai/tui/component/spinner"
|
import { SPINNER_FRAMES } from "@opencode-ai/tui/component/spinner"
|
||||||
import { RunEntryContent, separatorRows } from "./scrollback.writer"
|
import { RunEntryContent, separatorRows } from "./scrollback.writer"
|
||||||
import type { FooterSubagentDetail, FooterSubagentTab, RunDiffStyle } from "./types"
|
import type { FooterSubagentDetail, FooterSubagentTab, RunDiffStyle } from "./types"
|
||||||
import type { RunFooterTheme, RunTheme } from "./theme"
|
import type { RunFooterTheme, RunTheme } from "./theme"
|
||||||
|
|
||||||
|
registerOpencodeSpinner()
|
||||||
|
|
||||||
export const SUBAGENT_INSPECTOR_ROWS = 14
|
export const SUBAGENT_INSPECTOR_ROWS = 14
|
||||||
|
|
||||||
function statusColor(theme: RunFooterTheme, status: FooterSubagentTab["status"]) {
|
function statusColor(theme: RunFooterTheme, status: FooterSubagentTab["status"]) {
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
/** @jsxImportSource @opentui/solid */
|
/** @jsxImportSource @opentui/solid */
|
||||||
import { useTerminalDimensions } from "@opentui/solid"
|
import { useTerminalDimensions } from "@opentui/solid"
|
||||||
import { For, Match, Show, Switch, createEffect, createMemo, createSignal, onCleanup } from "solid-js"
|
import { For, Match, Show, Switch, createEffect, createMemo, createSignal, onCleanup } from "solid-js"
|
||||||
import "opentui-spinner/solid"
|
import { registerOpencodeSpinner } from "@opencode-ai/tui/component/register-spinner"
|
||||||
import { createColors, createFrames } from "@opencode-ai/tui/ui/spinner"
|
import { createColors, createFrames } from "@opencode-ai/tui/ui/spinner"
|
||||||
import {
|
import {
|
||||||
RUN_SUBAGENT_PANEL_ROWS,
|
RUN_SUBAGENT_PANEL_ROWS,
|
||||||
|
|
@ -56,6 +56,8 @@ import type {
|
||||||
import type { RunTheme } from "./theme"
|
import type { RunTheme } from "./theme"
|
||||||
import { modelInfo } from "./variant.shared"
|
import { modelInfo } from "./variant.shared"
|
||||||
|
|
||||||
|
registerOpencodeSpinner()
|
||||||
|
|
||||||
const EMPTY_BORDER = {
|
const EMPTY_BORDER = {
|
||||||
topLeft: "",
|
topLeft: "",
|
||||||
bottomLeft: "",
|
bottomLeft: "",
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,8 @@
|
||||||
"./ui/dialog": "./src/ui/dialog.tsx",
|
"./ui/dialog": "./src/ui/dialog.tsx",
|
||||||
"./ui/spinner": "./src/ui/spinner.ts",
|
"./ui/spinner": "./src/ui/spinner.ts",
|
||||||
"./ui/toast": "./src/ui/toast.tsx",
|
"./ui/toast": "./src/ui/toast.tsx",
|
||||||
"./component/spinner": "./src/component/spinner.tsx"
|
"./component/spinner": "./src/component/spinner.tsx",
|
||||||
|
"./component/register-spinner": "./src/component/register-spinner.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opencode-ai/core": "workspace:*",
|
"@opencode-ai/core": "workspace:*",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { render, TimeToFirstDraw, useRenderer, useTerminalDimensions } from "@opentui/solid"
|
import { render, TimeToFirstDraw, useRenderer, useTerminalDimensions } from "@opentui/solid"
|
||||||
|
import { registerOpencodeSpinner } from "./component/register-spinner"
|
||||||
import { createDefaultOpenTuiKeymap } from "@opentui/keymap/opentui"
|
import { createDefaultOpenTuiKeymap } from "@opentui/keymap/opentui"
|
||||||
import { Deferred, Effect } from "effect"
|
import { Deferred, Effect } from "effect"
|
||||||
import { Global } from "@opencode-ai/core/global"
|
import { Global } from "@opencode-ai/core/global"
|
||||||
|
|
@ -86,6 +87,8 @@ import { win32DisableProcessedInput, win32FlushInputBuffer } from "./terminal-wi
|
||||||
import { destroyRenderer } from "./util/renderer"
|
import { destroyRenderer } from "./util/renderer"
|
||||||
import { cliErrorMessage, errorFormat } from "./util/error"
|
import { cliErrorMessage, errorFormat } from "./util/error"
|
||||||
|
|
||||||
|
registerOpencodeSpinner()
|
||||||
|
|
||||||
const appGlobalBindingCommands = [
|
const appGlobalBindingCommands = [
|
||||||
"session.list",
|
"session.list",
|
||||||
"session.new",
|
"session.new",
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import {
|
||||||
} from "@opentui/core"
|
} from "@opentui/core"
|
||||||
import type { CommandContext } from "@opentui/keymap"
|
import type { CommandContext } from "@opentui/keymap"
|
||||||
import { createEffect, createMemo, onMount, createSignal, onCleanup, on, Show, Switch, Match } from "solid-js"
|
import { createEffect, createMemo, onMount, createSignal, onCleanup, on, Show, Switch, Match } from "solid-js"
|
||||||
import "opentui-spinner/solid"
|
import { registerOpencodeSpinner } from "../register-spinner"
|
||||||
import path from "path"
|
import path from "path"
|
||||||
import { fileURLToPath } from "url"
|
import { fileURLToPath } from "url"
|
||||||
import { useLocal } from "../../context/local"
|
import { useLocal } from "../../context/local"
|
||||||
|
|
@ -57,6 +57,8 @@ import { usePromptWorkspace } from "./workspace"
|
||||||
import { usePromptMove } from "./move"
|
import { usePromptMove } from "./move"
|
||||||
import { readLocalAttachment } from "./local-attachment"
|
import { readLocalAttachment } from "./local-attachment"
|
||||||
|
|
||||||
|
registerOpencodeSpinner()
|
||||||
|
|
||||||
export type PromptProps = {
|
export type PromptProps = {
|
||||||
sessionID?: string
|
sessionID?: string
|
||||||
visible?: boolean
|
visible?: boolean
|
||||||
|
|
|
||||||
6
packages/tui/src/component/register-spinner.ts
Normal file
6
packages/tui/src/component/register-spinner.ts
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { getComponentCatalogue } from "@opentui/solid/components"
|
||||||
|
import { registerSpinner } from "opentui-spinner/solid"
|
||||||
|
|
||||||
|
export function registerOpencodeSpinner() {
|
||||||
|
if (!getComponentCatalogue().spinner) registerSpinner()
|
||||||
|
}
|
||||||
|
|
@ -3,7 +3,9 @@ import { useTheme } from "../context/theme"
|
||||||
import { useKV } from "../context/kv"
|
import { useKV } from "../context/kv"
|
||||||
import type { JSX } from "@opentui/solid"
|
import type { JSX } from "@opentui/solid"
|
||||||
import type { RGBA } from "@opentui/core"
|
import type { RGBA } from "@opentui/core"
|
||||||
import "opentui-spinner/solid"
|
import { registerOpencodeSpinner } from "./register-spinner"
|
||||||
|
|
||||||
|
registerOpencodeSpinner()
|
||||||
|
|
||||||
export const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
|
export const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue