From eef3ae3e1f73eca103892a758d44e24d3c725d81 Mon Sep 17 00:00:00 2001 From: Filip <34747899+neriousy@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:18:44 +0100 Subject: Fix/reverception (#13166) Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> --- .../app/src/components/session/session-header.tsx | 59 +++++++--------------- 1 file changed, 17 insertions(+), 42 deletions(-) (limited to 'packages/app/src/components/session') diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 383490f99..54e24a6fb 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -1,4 +1,4 @@ -import { createEffect, createMemo, createResource, onCleanup, Show } from "solid-js" +import { createEffect, createMemo, onCleanup, Show } from "solid-js" import { createStore } from "solid-js/store" import { Portal } from "solid-js/web" import { useParams } from "@solidjs/router" @@ -18,7 +18,6 @@ import { IconButton } from "@opencode-ai/ui/icon-button" import { Button } from "@opencode-ai/ui/button" import { AppIcon } from "@opencode-ai/ui/app-icon" import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu" -import { Spinner } from "@opencode-ai/ui/spinner" import { Tooltip, TooltipKeybind } from "@opencode-ai/ui/tooltip" import { Popover } from "@opencode-ai/ui/popover" import { TextField } from "@opencode-ai/ui/text-field" @@ -168,7 +167,6 @@ export function SessionHeader() { const [prefs, setPrefs] = persisted(Persist.global("open.app"), createStore({ app: "finder" as OpenApp })) const [menu, setMenu] = createStore({ open: false }) - const [openRequest, setOpenRequest] = createStore({ app: undefined as OpenApp | undefined, version: 0 }) const canOpen = createMemo(() => platform.platform === "desktop" && !!platform.openPath && server.isLocal()) const current = createMemo(() => options().find((o) => o.id === prefs.app) ?? options()[0]) @@ -181,32 +179,20 @@ export function SessionHeader() { setPrefs("app", options()[0]?.id ?? "finder") }) - const [openTask] = createResource( - () => openRequest.app && openRequest.version, - async () => { - const app = openRequest.app - const directory = projectDirectory() - if (!app || !directory || !canOpen()) return - - const item = options().find((o) => o.id === app) - const openWith = item && "openWith" in item ? item.openWith : undefined - await platform.openPath?.(directory, openWith) - }, - ) - - createEffect(() => { - const err = openTask.error - if (!err) return - showToast({ - variant: "error", - title: language.t("common.requestFailed"), - description: err instanceof Error ? err.message : String(err), - }) - }) - const openDir = (app: OpenApp) => { - if (openTask.loading) return - setOpenRequest({ app, version: openRequest.version + 1 }) + const directory = projectDirectory() + if (!directory) return + if (!canOpen()) return + + const item = options().find((o) => o.id === app) + const openWith = item && "openWith" in item ? item.openWith : undefined + Promise.resolve(platform.openPath?.(directory, openWith)).catch((err: unknown) => { + showToast({ + variant: "error", + title: language.t("common.requestFailed"), + description: err instanceof Error ? err.message : String(err), + }) + }) } const copyPath = () => { @@ -362,18 +348,12 @@ export function SessionHeader() {