summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/app.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-09 06:12:04 -0600
committerAdam <[email protected]>2025-12-09 06:12:09 -0600
commit20662e21014216dfb42690d52b900d43666892fc (patch)
tree8dd9f9e8088b5a44d02533728a1a218efdb1ba92 /packages/desktop/src/app.tsx
parent0a357be160d672791bb99a36fc7d7c1299d5493d (diff)
downloadopencode-20662e21014216dfb42690d52b900d43666892fc.tar.gz
opencode-20662e21014216dfb42690d52b900d43666892fc.zip
wip(desktop): progress
Diffstat (limited to 'packages/desktop/src/app.tsx')
-rw-r--r--packages/desktop/src/app.tsx59
1 files changed, 59 insertions, 0 deletions
diff --git a/packages/desktop/src/app.tsx b/packages/desktop/src/app.tsx
new file mode 100644
index 000000000..0ca4d5e6b
--- /dev/null
+++ b/packages/desktop/src/app.tsx
@@ -0,0 +1,59 @@
+import "@/index.css"
+import { Router, Route, Navigate } from "@solidjs/router"
+import { MetaProvider } from "@solidjs/meta"
+import { Font } from "@opencode-ai/ui/font"
+import { MarkedProvider } from "@opencode-ai/ui/context/marked"
+import { DiffComponentProvider } from "@opencode-ai/ui/context/diff"
+import { Diff } from "@opencode-ai/ui/diff"
+import { GlobalSyncProvider } from "./context/global-sync"
+import Layout from "@/pages/layout"
+import Home from "@/pages/home"
+import DirectoryLayout from "@/pages/directory-layout"
+import Session from "@/pages/session"
+import { LayoutProvider } from "./context/layout"
+import { GlobalSDKProvider } from "./context/global-sdk"
+import { SessionProvider } from "./context/session"
+import { Show } from "solid-js"
+
+const host = import.meta.env.VITE_OPENCODE_SERVER_HOST ?? "127.0.0.1"
+const port = import.meta.env.VITE_OPENCODE_SERVER_PORT ?? "4096"
+
+const url =
+ new URLSearchParams(document.location.search).get("url") ||
+ (location.hostname.includes("opencode.ai") || location.hostname.includes("localhost")
+ ? `http://${host}:${port}`
+ : "/")
+
+export function App() {
+ return (
+ <MarkedProvider>
+ <DiffComponentProvider component={Diff}>
+ <GlobalSDKProvider url={url}>
+ <GlobalSyncProvider>
+ <LayoutProvider>
+ <MetaProvider>
+ <Font />
+ <Router root={Layout}>
+ <Route path="/" component={Home} />
+ <Route path="/:dir" component={DirectoryLayout}>
+ <Route path="/" component={() => <Navigate href="session" />} />
+ <Route
+ path="/session/:id?"
+ component={(p) => (
+ <Show when={p.params.id || true} keyed>
+ <SessionProvider>
+ <Session />
+ </SessionProvider>
+ </Show>
+ )}
+ />
+ </Route>
+ </Router>
+ </MetaProvider>
+ </LayoutProvider>
+ </GlobalSyncProvider>
+ </GlobalSDKProvider>
+ </DiffComponentProvider>
+ </MarkedProvider>
+ )
+}