summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2026-04-30 22:45:41 -0500
committerGitHub <[email protected]>2026-04-30 22:45:41 -0500
commit33f7f593eeba84de34c52779a42b24b4edfa652a (patch)
tree8de3e49cd66997dd4b6fda53a0eeaf5dcbf44a18
parent461e7345b39618e657406948f38226facaf922be (diff)
downloadopencode-33f7f593eeba84de34c52779a42b24b4edfa652a.tar.gz
opencode-33f7f593eeba84de34c52779a42b24b4edfa652a.zip
fix: tui list jank issue (#25219)
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx6
3 files changed, 5 insertions, 5 deletions
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 ebc28847f..d6cbda413 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx
@@ -51,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 && onboarded() ? <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/dialog-session-list.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
index 72d60767b..04c6b9945 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
@@ -168,7 +168,7 @@ export function DialogSessionList() {
value: x.id,
category,
footer,
- gutter: isWorking ? <Spinner /> : undefined,
+ gutter: isWorking ? () => <Spinner /> : undefined,
}
})
})
diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
index b6c937f41..4d68c4430 100644
--- a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
+++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
@@ -42,7 +42,7 @@ export interface DialogSelectOption<T = any> {
categoryView?: JSX.Element
disabled?: boolean
bg?: RGBA
- gutter?: JSX.Element
+ gutter?: () => JSX.Element
margin?: JSX.Element
onSelect?: (ctx: DialogContext) => void
}
@@ -407,7 +407,7 @@ function Option(props: {
active?: boolean
current?: boolean
footer?: JSX.Element | string
- gutter?: JSX.Element
+ gutter?: () => JSX.Element
onMouseOver?: () => void
}) {
const { theme } = useTheme()
@@ -422,7 +422,7 @@ function Option(props: {
</Show>
<Show when={!props.current && props.gutter}>
<box flexShrink={0} marginRight={0}>
- {props.gutter}
+ {props.gutter?.()}
</box>
</Show>
<text