From 7ade6d386daeea120415b69f9df522001350db7b Mon Sep 17 00:00:00 2001
From: Adam <2363879+adamdotdevin@users.noreply.github.com>
Date: Sun, 14 Dec 2025 12:51:36 -0600
Subject: [PATCH] wip(desktop): progress
---
packages/desktop/src/app.tsx | 57 ++++++++++---------
.../desktop/src/pages/directory-layout.tsx | 6 +-
packages/desktop/src/pages/layout.tsx | 11 +++-
packages/ui/src/components/dialog.tsx | 2 +-
4 files changed, 42 insertions(+), 34 deletions(-)
diff --git a/packages/desktop/src/app.tsx b/packages/desktop/src/app.tsx
index bf9dfd3b7..fd55b228e 100644
--- a/packages/desktop/src/app.tsx
+++ b/packages/desktop/src/app.tsx
@@ -1,20 +1,21 @@
import "@/index.css"
+import { Show } from "solid-js"
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 { GlobalSyncProvider } from "@/context/global-sync"
+import { LayoutProvider } from "@/context/layout"
+import { GlobalSDKProvider } from "@/context/global-sdk"
+import { SessionProvider } from "@/context/session"
+import { NotificationProvider } from "@/context/notification"
+import { DialogProvider } from "@/context/dialog"
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"
-import { NotificationProvider } from "./context/notification"
declare global {
interface Window {
@@ -38,27 +39,29 @@ export function App() {
-
-
-
-
-
-
- } />
- (
-
-
-
-
-
- )}
- />
-
-
-
-
+
+
+
+
+
+
+
+ } />
+ (
+
+
+
+
+
+ )}
+ />
+
+
+
+
+
diff --git a/packages/desktop/src/pages/directory-layout.tsx b/packages/desktop/src/pages/directory-layout.tsx
index 1349f6ec0..7b8d2ab9e 100644
--- a/packages/desktop/src/pages/directory-layout.tsx
+++ b/packages/desktop/src/pages/directory-layout.tsx
@@ -6,7 +6,7 @@ import { LocalProvider } from "@/context/local"
import { base64Decode } from "@opencode-ai/util/encode"
import { DataProvider } from "@opencode-ai/ui/context"
import { iife } from "@opencode-ai/util/iife"
-import { DialogProvider, DialogRoot } from "@/context/dialog"
+import { DialogRoot } from "@/context/dialog"
export default function Layout(props: ParentProps) {
const params = useParams()
@@ -22,9 +22,7 @@ export default function Layout(props: ParentProps) {
return (
-
- {props.children}
-
+ {props.children}
)
diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx
index 7b1d0e45a..c36cc234e 100644
--- a/packages/desktop/src/pages/layout.tsx
+++ b/packages/desktop/src/pages/layout.tsx
@@ -33,6 +33,8 @@ import { useGlobalSDK } from "@/context/global-sdk"
import { useNotification } from "@/context/notification"
import { Binary } from "@opencode-ai/util/binary"
import { Header } from "@/components/header"
+import { useDialog } from "@/context/dialog"
+import { DialogSelectProvider } from "@/components/dialog-select-provider"
export default function Layout(props: ParentProps) {
const [store, setStore] = createStore({
@@ -48,6 +50,11 @@ export default function Layout(props: ParentProps) {
const notification = useNotification()
const navigate = useNavigate()
const providers = useProviders()
+ const dialog = useDialog()
+
+ function connectProvider() {
+ dialog.replace(() => )
+ }
function navigateToProject(directory: string | undefined) {
if (!directory) return
@@ -488,7 +495,7 @@ export default function Layout(props: ParentProps) {
class="flex w-full text-left justify-start text-12-medium text-text-strong stroke-[1.5px] rounded-lg rounded-t-none shadow-none border-t border-border-weak-base pl-2.25 pb-px"
size="large"
icon="plus"
- // onClick={connectProvider}
+ onClick={connectProvider}
>
Connect provider
@@ -502,7 +509,7 @@ export default function Layout(props: ParentProps) {
variant="ghost"
size="large"
icon="plus"
- // onClick={connectProvider}
+ onClick={connectProvider}
>
Connect provider
diff --git a/packages/ui/src/components/dialog.tsx b/packages/ui/src/components/dialog.tsx
index 56053278d..aebb77885 100644
--- a/packages/ui/src/components/dialog.tsx
+++ b/packages/ui/src/components/dialog.tsx
@@ -14,7 +14,7 @@ export interface DialogProps extends DialogRootProps {
classList?: ComponentProps<"div">["classList"]
}
-export function DialogRoot(props: DialogProps) {
+function DialogRoot(props: DialogProps) {
let trigger!: HTMLElement
const [local, others] = splitProps(props, ["trigger", "class", "classList", "children"])