From 33f7f593eeba84de34c52779a42b24b4edfa652a Mon Sep 17 00:00:00 2001
From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Date: Thu, 30 Apr 2026 22:45:41 -0500
Subject: [PATCH] fix: tui list jank issue (#25219)
---
.../opencode/src/cli/cmd/tui/component/dialog-provider.tsx | 2 +-
.../src/cli/cmd/tui/component/dialog-session-list.tsx | 2 +-
packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx | 6 +++---
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 ebc28847f0..d6cbda4133 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() ? ✓ : undefined,
+ gutter: connected && onboarded() ? () => ✓ : 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 72d60767bb..04c6b9945c 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 ? : undefined,
+ gutter: isWorking ? () => : 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 b6c937f411..4d68c44308 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 {
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: {
- {props.gutter}
+ {props.gutter?.()}