Quellcode durchsuchen

fix: connect provider on homepage

Adam vor 2 Monaten
Ursprung
Commit
7e49d0fb15

+ 33 - 28
packages/desktop/src/app.tsx

@@ -12,7 +12,7 @@ import { GlobalSDKProvider } from "@/context/global-sdk"
 import { TerminalProvider } from "@/context/terminal"
 import { TerminalProvider } from "@/context/terminal"
 import { PromptProvider } from "@/context/prompt"
 import { PromptProvider } from "@/context/prompt"
 import { NotificationProvider } from "@/context/notification"
 import { NotificationProvider } from "@/context/notification"
-import { DialogProvider } from "@opencode-ai/ui/context/dialog"
+import { DialogProvider, DialogRoot } from "@opencode-ai/ui/context/dialog"
 import { CommandProvider } from "@/context/command"
 import { CommandProvider } from "@/context/command"
 import Layout from "@/pages/layout"
 import Layout from "@/pages/layout"
 import Home from "@/pages/home"
 import Home from "@/pages/home"
@@ -41,33 +41,38 @@ export function App() {
         <GlobalSDKProvider url={url}>
         <GlobalSDKProvider url={url}>
           <GlobalSyncProvider>
           <GlobalSyncProvider>
             <LayoutProvider>
             <LayoutProvider>
-              <DialogProvider>
-                <CommandProvider>
-                  <NotificationProvider>
-                    <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>
-                                <TerminalProvider>
-                                  <PromptProvider>
-                                    <Session />
-                                  </PromptProvider>
-                                </TerminalProvider>
-                              </Show>
-                            )}
-                          />
-                        </Route>
-                      </Router>
-                    </MetaProvider>
-                  </NotificationProvider>
-                </CommandProvider>
-              </DialogProvider>
+              <NotificationProvider>
+                <MetaProvider>
+                  <Font />
+                  <Router
+                    root={(props) => (
+                      <DialogProvider>
+                        <CommandProvider>
+                          <DialogRoot />
+                          <Layout>{props.children}</Layout>
+                        </CommandProvider>
+                      </DialogProvider>
+                    )}
+                  >
+                    <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>
+                            <TerminalProvider>
+                              <PromptProvider>
+                                <Session />
+                              </PromptProvider>
+                            </TerminalProvider>
+                          </Show>
+                        )}
+                      />
+                    </Route>
+                  </Router>
+                </MetaProvider>
+              </NotificationProvider>
             </LayoutProvider>
             </LayoutProvider>
           </GlobalSyncProvider>
           </GlobalSyncProvider>
         </GlobalSDKProvider>
         </GlobalSDKProvider>

+ 4 - 2
packages/desktop/src/pages/directory-layout.tsx

@@ -6,7 +6,7 @@ import { LocalProvider } from "@/context/local"
 import { base64Decode } from "@opencode-ai/util/encode"
 import { base64Decode } from "@opencode-ai/util/encode"
 import { DataProvider } from "@opencode-ai/ui/context"
 import { DataProvider } from "@opencode-ai/ui/context"
 import { iife } from "@opencode-ai/util/iife"
 import { iife } from "@opencode-ai/util/iife"
-import { DialogRoot } from "@opencode-ai/ui/context/dialog"
+import { DialogProvider, DialogRoot } from "@opencode-ai/ui/context/dialog"
 
 
 export default function Layout(props: ParentProps) {
 export default function Layout(props: ParentProps) {
   const params = useParams()
   const params = useParams()
@@ -22,7 +22,9 @@ export default function Layout(props: ParentProps) {
             return (
             return (
               <DataProvider data={sync.data} directory={directory()}>
               <DataProvider data={sync.data} directory={directory()}>
                 <LocalProvider>
                 <LocalProvider>
-                  <DialogRoot>{props.children}</DialogRoot>
+                  <DialogProvider>
+                    <DialogRoot>{props.children}</DialogRoot>
+                  </DialogProvider>
                 </LocalProvider>
                 </LocalProvider>
               </DataProvider>
               </DataProvider>
             )
             )

+ 1 - 2
packages/desktop/src/pages/layout.tsx

@@ -496,11 +496,10 @@ export default function Layout(props: ParentProps) {
   }
   }
 
 
   const SortableProject = (props: { project: Project & { expanded: boolean } }): JSX.Element => {
   const SortableProject = (props: { project: Project & { expanded: boolean } }): JSX.Element => {
-    const notification = useNotification()
     const sortable = createSortable(props.project.worktree)
     const sortable = createSortable(props.project.worktree)
     const slug = createMemo(() => base64Encode(props.project.worktree))
     const slug = createMemo(() => base64Encode(props.project.worktree))
     const name = createMemo(() => getFilename(props.project.worktree))
     const name = createMemo(() => getFilename(props.project.worktree))
-    const [store, setStore] = globalSync.child(props.project.worktree)
+    const [store] = globalSync.child(props.project.worktree)
     const sessions = createMemo(() => store.session ?? [])
     const sessions = createMemo(() => store.session ?? [])
     const rootSessions = createMemo(() => sessions().filter((s) => !s.parentID))
     const rootSessions = createMemo(() => sessions().filter((s) => !s.parentID))
     const childSessionsByParent = createMemo(() => {
     const childSessionsByParent = createMemo(() => {