summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-18 13:23:20 -0600
committerGitHub <[email protected]>2026-02-18 13:23:20 -0600
commit42aa28d512d4ea77bef6159530b8bac9c7c872a0 (patch)
tree5f009761db79701af778fa0270f837def3f09ff5 /packages/app/src/components
parentc6bd32000302c0cf607c1e91c536537e43848237 (diff)
downloadopencode-42aa28d512d4ea77bef6159530b8bac9c7c872a0.tar.gz
opencode-42aa28d512d4ea77bef6159530b8bac9c7c872a0.zip
chore: cleanup (#14181)
Diffstat (limited to 'packages/app/src/components')
-rw-r--r--packages/app/src/components/prompt-input.tsx14
-rw-r--r--packages/app/src/components/session/session-header.tsx17
2 files changed, 6 insertions, 25 deletions
diff --git a/packages/app/src/components/prompt-input.tsx b/packages/app/src/components/prompt-input.tsx
index 1ca085a42..b5a101994 100644
--- a/packages/app/src/components/prompt-input.tsx
+++ b/packages/app/src/components/prompt-input.tsx
@@ -403,15 +403,10 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
const [composing, setComposing] = createSignal(false)
const isImeComposing = (event: KeyboardEvent) => event.isComposing || composing() || event.keyCode === 229
- createEffect(() => {
- if (!isFocused()) closePopover()
- })
-
- // Safety: reset composing state on focus change to prevent stuck state
- // This handles edge cases where compositionend event may not fire
- createEffect(() => {
- if (!isFocused()) setComposing(false)
- })
+ const handleBlur = () => {
+ closePopover()
+ setComposing(false)
+ }
const agentList = createMemo(() =>
sync.data.agent
@@ -1118,6 +1113,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
onPaste={handlePaste}
onCompositionStart={() => setComposing(true)}
onCompositionEnd={() => setComposing(false)}
+ onBlur={handleBlur}
onKeyDown={handleKeyDown}
classList={{
"select-text": true,
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx
index 912e449cf..3003d0514 100644
--- a/packages/app/src/components/session/session-header.tsx
+++ b/packages/app/src/components/session/session-header.tsx
@@ -257,27 +257,12 @@ export function SessionHeader() {
] as const
})
- const checksReady = createMemo(() => {
- if (platform.platform !== "desktop") return true
- if (!platform.checkAppExists) return true
- const list = apps()
- return list.every((app) => exists[app.id] !== undefined)
- })
-
const [prefs, setPrefs] = persisted(Persist.global("open.app"), createStore({ app: "finder" as OpenApp }))
const [menu, setMenu] = createStore({ open: false })
const canOpen = createMemo(() => platform.platform === "desktop" && !!platform.openPath && server.isLocal())
const current = createMemo(() => options().find((o) => o.id === prefs.app) ?? options()[0])
- createEffect(() => {
- if (platform.platform !== "desktop") return
- if (!checksReady()) return
- const value = prefs.app
- if (options().some((o) => o.id === value)) return
- setPrefs("app", options()[0]?.id ?? "finder")
- })
-
const openDir = (app: OpenApp) => {
const directory = projectDirectory()
if (!directory) return
@@ -398,7 +383,7 @@ export function SessionHeader() {
<DropdownMenu.Group>
<DropdownMenu.GroupLabel>{language.t("session.header.openIn")}</DropdownMenu.GroupLabel>
<DropdownMenu.RadioGroup
- value={prefs.app}
+ value={current().id}
onChange={(value) => {
if (!OPEN_APPS.includes(value as OpenApp)) return
setPrefs("app", value as OpenApp)