diff options
| -rw-r--r-- | packages/desktop/index.html | 2 | ||||
| -rw-r--r-- | packages/desktop/package.json | 2 | ||||
| -rw-r--r-- | packages/desktop/src/DesktopInterface.tsx (renamed from packages/desktop/src/index.tsx) | 18 | ||||
| -rw-r--r-- | packages/desktop/src/PlatformContext.tsx | 14 | ||||
| -rw-r--r-- | packages/desktop/src/entry.tsx | 22 | ||||
| -rw-r--r-- | packages/desktop/src/index.ts | 2 | ||||
| -rw-r--r-- | packages/tauri/index.html | 2 | ||||
| -rw-r--r-- | packages/tauri/src-tauri/src/lib.rs | 2 | ||||
| -rw-r--r-- | packages/tauri/src/index.ts | 1 | ||||
| -rw-r--r-- | packages/tauri/src/index.tsx | 21 | ||||
| -rw-r--r-- | packages/tauri/tsconfig.json | 5 |
11 files changed, 71 insertions, 20 deletions
diff --git a/packages/desktop/index.html b/packages/desktop/index.html index 0ac3d566d..b9d3e5351 100644 --- a/packages/desktop/index.html +++ b/packages/desktop/index.html @@ -23,6 +23,6 @@ </script> <noscript>You need to enable JavaScript to run this app.</noscript> <div id="root"></div> - <script src="/src/index.tsx" type="module"></script> + <script src="/src/entry.tsx" type="module"></script> </body> </html> diff --git a/packages/desktop/package.json b/packages/desktop/package.json index a71a33fe8..f71f33eda 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -4,7 +4,7 @@ "description": "", "type": "module", "exports": { - ".": "./src/index.tsx", + ".": "./src/index.ts", "./vite": "./vite.js" }, "scripts": { diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/DesktopInterface.tsx index 3c21b9a37..c4de3e089 100644 --- a/packages/desktop/src/index.tsx +++ b/packages/desktop/src/DesktopInterface.tsx @@ -1,6 +1,4 @@ -/* @refresh reload */ import "@/index.css" -import { render } from "solid-js/web" import { Router, Route, Navigate } from "@solidjs/router" import { MetaProvider } from "@solidjs/meta" import { Font } from "@opencode-ai/ui/font" @@ -27,15 +25,8 @@ const url = ? `http://${host}:${port}` : "/") -const root = document.getElementById("root") -if (import.meta.env.DEV && !(root instanceof HTMLElement)) { - throw new Error( - "Root element not found. Did you forget to add it to your index.html? Or maybe the id attribute got misspelled?", - ) -} - -render( - () => ( +export function DesktopInterface() { + return ( <MarkedProvider> <DiffComponentProvider component={Diff}> <GlobalSDKProvider url={url}> @@ -72,6 +63,5 @@ render( </GlobalSDKProvider> </DiffComponentProvider> </MarkedProvider> - ), - root!, -) + ) +} diff --git a/packages/desktop/src/PlatformContext.tsx b/packages/desktop/src/PlatformContext.tsx new file mode 100644 index 000000000..5b510a8d4 --- /dev/null +++ b/packages/desktop/src/PlatformContext.tsx @@ -0,0 +1,14 @@ +import { createContext } from "solid-js" +import { useContext } from "solid-js" + +export interface Platform {} + +const PlatformContext = createContext<Platform>() + +export const PlatformProvider = PlatformContext.Provider + +export function usePlatform() { + const ctx = useContext(PlatformContext) + if (!ctx) throw new Error("usePlatform must be used within a PlatformProvider") + return ctx +} diff --git a/packages/desktop/src/entry.tsx b/packages/desktop/src/entry.tsx new file mode 100644 index 000000000..82c5dd331 --- /dev/null +++ b/packages/desktop/src/entry.tsx @@ -0,0 +1,22 @@ +// @refresh reload +import { render } from "solid-js/web" +import { DesktopInterface } from "@/DesktopInterface" +import { Platform, PlatformProvider } from "@/PlatformContext" + +const root = document.getElementById("root") +if (import.meta.env.DEV && !(root instanceof HTMLElement)) { + throw new Error( + "Root element not found. Did you forget to add it to your index.html? Or maybe the id attribute got misspelled?", + ) +} + +const platform: Platform = {} + +render( + () => ( + <PlatformProvider value={platform}> + <DesktopInterface /> + </PlatformProvider> + ), + root!, +) diff --git a/packages/desktop/src/index.ts b/packages/desktop/src/index.ts new file mode 100644 index 000000000..2142e4886 --- /dev/null +++ b/packages/desktop/src/index.ts @@ -0,0 +1,2 @@ +export { PlatformProvider, type Platform } from "./PlatformContext" +export { DesktopInterface } from "./DesktopInterface" diff --git a/packages/tauri/index.html b/packages/tauri/index.html index 898aec67a..0ac3d566d 100644 --- a/packages/tauri/index.html +++ b/packages/tauri/index.html @@ -23,6 +23,6 @@ </script> <noscript>You need to enable JavaScript to run this app.</noscript> <div id="root"></div> - <script src="/src/index.ts" type="module"></script> + <script src="/src/index.tsx" type="module"></script> </body> </html> diff --git a/packages/tauri/src-tauri/src/lib.rs b/packages/tauri/src-tauri/src/lib.rs index bada4dee2..1809d2f8b 100644 --- a/packages/tauri/src-tauri/src/lib.rs +++ b/packages/tauri/src-tauri/src/lib.rs @@ -4,7 +4,7 @@ use std::{ sync::{Arc, Mutex}, time::{Duration, Instant}, }; -use tauri::{App, AppHandle, Manager, RunEvent, WebviewUrl, WebviewWindow}; +use tauri::{AppHandle, Manager, RunEvent, WebviewUrl, WebviewWindow}; use tauri_plugin_dialog::{DialogExt, MessageDialogButtons, MessageDialogResult}; use tauri_plugin_shell::process::{CommandChild, CommandEvent}; use tauri_plugin_shell::ShellExt; diff --git a/packages/tauri/src/index.ts b/packages/tauri/src/index.ts deleted file mode 100644 index b9060d628..000000000 --- a/packages/tauri/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -import "@opencode-ai/desktop" diff --git a/packages/tauri/src/index.tsx b/packages/tauri/src/index.tsx new file mode 100644 index 000000000..9371b4826 --- /dev/null +++ b/packages/tauri/src/index.tsx @@ -0,0 +1,21 @@ +// @refresh reload +import { render } from "solid-js/web" +import { DesktopInterface, PlatformProvider, Platform } from "@opencode-ai/desktop" + +const root = document.getElementById("root") +if (import.meta.env.DEV && !(root instanceof HTMLElement)) { + throw new Error( + "Root element not found. Did you forget to add it to your index.html? Or maybe the id attribute got misspelled?", + ) +} + +const platform: Platform = {} + +render( + () => ( + <PlatformProvider value={platform}> + <DesktopInterface /> + </PlatformProvider> + ), + root!, +) diff --git a/packages/tauri/tsconfig.json b/packages/tauri/tsconfig.json index 75abdef26..cf73096e5 100644 --- a/packages/tauri/tsconfig.json +++ b/packages/tauri/tsconfig.json @@ -17,7 +17,10 @@ "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true + "noFallthroughCasesInSwitch": true, + + "jsx": "preserve", + "jsxImportSource": "solid-js" }, "include": ["src"] } |
