diff options
| author | Kit Langton <[email protected]> | 2026-01-11 11:11:40 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-11 11:11:40 -0500 |
| commit | 43c2da24d01bcda5d2452f1ec90af0b0980f630a (patch) | |
| tree | f3b9c75d7ce978a0dd15be6e2326a6ba49a8a070 | |
| parent | 3205db9c163d3d8fb411eaa2a5642d879ee05a30 (diff) | |
| download | opencode-43c2da24d01bcda5d2452f1ec90af0b0980f630a.tar.gz opencode-43c2da24d01bcda5d2452f1ec90af0b0980f630a.zip | |
fix(tui): slash command autocomplete highlighted row jumping (#7815)
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx index 3c757f81b..9aa3b551d 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx @@ -1,7 +1,7 @@ import type { BoxRenderable, TextareaRenderable, KeyEvent, ScrollBoxRenderable } from "@opentui/core" import fuzzysort from "fuzzysort" import { firstBy } from "remeda" -import { createMemo, createResource, createEffect, onMount, onCleanup, For, Show, createSignal } from "solid-js" +import { createMemo, createResource, createEffect, onMount, onCleanup, Index, Show, createSignal } from "solid-js" import { createStore } from "solid-js/store" import { useSDK } from "@tui/context/sdk" import { useSync } from "@tui/context/sync" @@ -686,7 +686,7 @@ export function Autocomplete(props: { height={height()} scrollbarOptions={{ visible: false }} > - <For + <Index each={options()} fallback={ <box paddingLeft={1} paddingRight={1}> @@ -698,20 +698,20 @@ export function Autocomplete(props: { <box paddingLeft={1} paddingRight={1} - backgroundColor={index() === store.selected ? theme.primary : undefined} + backgroundColor={index === store.selected ? theme.primary : undefined} flexDirection="row" > - <text fg={index() === store.selected ? selectedForeground(theme) : theme.text} flexShrink={0}> - {option.display} + <text fg={index === store.selected ? selectedForeground(theme) : theme.text} flexShrink={0}> + {option().display} </text> - <Show when={option.description}> - <text fg={index() === store.selected ? selectedForeground(theme) : theme.textMuted} wrapMode="none"> - {option.description} + <Show when={option().description}> + <text fg={index === store.selected ? selectedForeground(theme) : theme.textMuted} wrapMode="none"> + {option().description} </text> </Show> </box> )} - </For> + </Index> </scrollbox> </box> ) |
