summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSebastian Herrlinger <[email protected]>2026-01-28 23:53:37 -0500
committerSebastian Herrlinger <[email protected]>2026-01-28 23:53:37 -0500
commit58ba486375b20c8738a0f1e6afef38f33ca8cd57 (patch)
treec6f2e93d7ea9f45fc6610cb39026281149d0f553
parent121016af812710eb53839d782d0d52710e64973b (diff)
downloadopencode-58ba486375b20c8738a0f1e6afef38f33ca8cd57.tar.gz
opencode-58ba486375b20c8738a0f1e6afef38f33ca8cd57.zip
guard destroyed input field in timeout
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx6
1 files changed, 5 insertions, 1 deletions
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 8ff5a3b23..bd1de7d4d 100644
--- a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
+++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
@@ -241,7 +241,11 @@ export function DialogSelect<T>(props: DialogSelectProps<T>) {
focusedTextColor={theme.textMuted}
ref={(r) => {
input = r
- setTimeout(() => input.focus(), 1)
+ setTimeout(() => {
+ if (!input) return
+ if (input.isDestroyed) return
+ input.focus()
+ }, 1)
}}
placeholder={props.placeholder ?? "Search"}
/>