Skip to content

Commit 0a2a089

Browse files
Apply PR #23407: feat: desktop WSL onboarding + happy experience
2 parents 62da571 + e16115f commit 0a2a089

26 files changed

Lines changed: 2567 additions & 370 deletions

packages/app/src/app.tsx

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { PromptProvider } from "@/context/prompt"
4242
import { ServerConnection, ServerProvider, serverName, useServer } from "@/context/server"
4343
import { SettingsProvider } from "@/context/settings"
4444
import { TerminalProvider } from "@/context/terminal"
45+
import { WslServersProvider } from "@/context/wsl-servers"
4546
import DirectoryLayout from "@/pages/directory-layout"
4647
import Layout from "@/pages/layout"
4748
import { ErrorPage } from "./pages/error"
@@ -74,7 +75,7 @@ declare global {
7475
__OPENCODE__?: {
7576
updaterEnabled?: boolean
7677
deepLinks?: string[]
77-
wsl?: boolean
78+
activeServer?: string
7879
}
7980
api?: {
8081
setTitlebar?: (theme: { mode: "light" | "dark" }) => Promise<void>
@@ -156,11 +157,13 @@ export function AppBaseProviders(props: ParentProps<{ locale?: Locale }>) {
156157
}}
157158
>
158159
<QueryProvider>
159-
<DialogProvider>
160-
<MarkedProvider>
161-
<FileComponentProvider component={File}>{props.children}</FileComponentProvider>
162-
</MarkedProvider>
163-
</DialogProvider>
160+
<WslServersProvider>
161+
<DialogProvider>
162+
<MarkedProvider>
163+
<FileComponentProvider component={File}>{props.children}</FileComponentProvider>
164+
</MarkedProvider>
165+
</DialogProvider>
166+
</WslServersProvider>
164167
</QueryProvider>
165168
</ErrorBoundary>
166169
</UiI18nBridge>
@@ -283,11 +286,11 @@ function ConnectionError(props: { onRetry?: () => void; onServerSelected?: (key:
283286
)
284287
}
285288

286-
function ServerKey(props: ParentProps) {
289+
function ServerKey(props: { children: (key: ServerConnection.Key) => JSX.Element }) {
287290
const server = useServer()
288291
return (
289292
<Show when={server.key} keyed>
290-
{props.children}
293+
{(key) => props.children(key)}
291294
</Show>
292295
)
293296
}
@@ -307,22 +310,24 @@ export function AppInterface(props: {
307310
>
308311
<ConnectionGate disableHealthCheck={props.disableHealthCheck}>
309312
<ServerKey>
310-
<QueryProvider>
311-
<GlobalSDKProvider>
312-
<GlobalSyncProvider>
313-
<Dynamic
314-
component={props.router ?? Router}
315-
root={(routerProps) => <RouterRoot appChildren={props.children}>{routerProps.children}</RouterRoot>}
316-
>
317-
<Route path="/" component={HomeRoute} />
318-
<Route path="/:dir" component={DirectoryLayout}>
319-
<Route path="/" component={SessionIndexRoute} />
320-
<Route path="/session/:id?" component={SessionRoute} />
321-
</Route>
322-
</Dynamic>
323-
</GlobalSyncProvider>
324-
</GlobalSDKProvider>
325-
</QueryProvider>
313+
{() => (
314+
<QueryProvider>
315+
<GlobalSDKProvider>
316+
<GlobalSyncProvider>
317+
<Dynamic
318+
component={props.router ?? Router}
319+
root={(routerProps) => <RouterRoot appChildren={props.children}>{routerProps.children}</RouterRoot>}
320+
>
321+
<Route path="/" component={HomeRoute} />
322+
<Route path="/:dir" component={DirectoryLayout}>
323+
<Route path="/" component={SessionIndexRoute} />
324+
<Route path="/session/:id?" component={SessionRoute} />
325+
</Route>
326+
</Dynamic>
327+
</GlobalSyncProvider>
328+
</GlobalSDKProvider>
329+
</QueryProvider>
330+
)}
326331
</ServerKey>
327332
</ConnectionGate>
328333
</ServerProvider>

0 commit comments

Comments
 (0)