summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src
diff options
context:
space:
mode:
authoradamelmore <[email protected]>2026-01-12 08:38:29 -0600
committerAdam <[email protected]>2026-01-15 07:29:13 -0600
commit9f66a45970d1edf12ae9b3e7a22d77711b5e51c3 (patch)
treea34f43cddd3fc53a731af7c2fb631f3ec05c012c /packages/desktop/src
parent779610d668e239c07014c9d350d47e2213c07b26 (diff)
downloadopencode-9f66a45970d1edf12ae9b3e7a22d77711b5e51c3.tar.gz
opencode-9f66a45970d1edf12ae9b3e7a22d77711b5e51c3.zip
feat(app): new layout
Diffstat (limited to 'packages/desktop/src')
-rw-r--r--packages/desktop/src/index.tsx31
1 files changed, 21 insertions, 10 deletions
diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx
index f05a28e14..e554f8da0 100644
--- a/packages/desktop/src/index.tsx
+++ b/packages/desktop/src/index.tsx
@@ -13,7 +13,7 @@ import { AsyncStorage } from "@solid-primitives/storage"
import { fetch as tauriFetch } from "@tauri-apps/plugin-http"
import { Store } from "@tauri-apps/plugin-store"
import { Logo } from "@opencode-ai/ui/logo"
-import { createSignal, Show, Accessor, JSX, createResource } from "solid-js"
+import { createSignal, Show, Accessor, JSX, createResource, onMount, onCleanup } from "solid-js"
import { UPDATER_ENABLED } from "./updater"
import { createMenu } from "./menu"
@@ -30,6 +30,11 @@ let update: Update | null = null
const createPlatform = (password: Accessor<string | null>): Platform => ({
platform: "desktop",
+ os: (() => {
+ const type = ostype()
+ if (type === "macos" || type === "windows" || type === "linux") return type
+ return undefined
+ })(),
version: pkg.version,
async openDirectoryPickerDialog(opts) {
@@ -292,19 +297,25 @@ root?.addEventListener("mousewheel", (e) => {
e.stopPropagation()
})
-// Handle external links - open in system browser instead of webview
-document.addEventListener("click", (e) => {
- const link = (e.target as HTMLElement).closest("a.external-link") as HTMLAnchorElement | null
- if (link?.href) {
- e.preventDefault()
- platform.openLink(link.href)
- }
-})
-
render(() => {
const [serverPassword, setServerPassword] = createSignal<string | null>(null)
const platform = createPlatform(() => serverPassword())
+ function handleClick(e: MouseEvent) {
+ const link = (e.target as HTMLElement).closest("a.external-link") as HTMLAnchorElement | null
+ if (link?.href) {
+ e.preventDefault()
+ platform.openLink(link.href)
+ }
+ }
+
+ onMount(() => {
+ document.addEventListener("click", handleClick)
+ onCleanup(() => {
+ document.removeEventListener("click", handleClick)
+ })
+ })
+
return (
<PlatformProvider value={platform}>
<AppBaseProviders>