diff options
| author | Adam <[email protected]> | 2025-12-09 06:12:04 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-09 06:12:09 -0600 |
| commit | 20662e21014216dfb42690d52b900d43666892fc (patch) | |
| tree | 8dd9f9e8088b5a44d02533728a1a218efdb1ba92 /packages/desktop/src/app.tsx | |
| parent | 0a357be160d672791bb99a36fc7d7c1299d5493d (diff) | |
| download | opencode-20662e21014216dfb42690d52b900d43666892fc.tar.gz opencode-20662e21014216dfb42690d52b900d43666892fc.zip | |
wip(desktop): progress
Diffstat (limited to 'packages/desktop/src/app.tsx')
| -rw-r--r-- | packages/desktop/src/app.tsx | 59 |
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> + ) +} |
