Skip to content

Commit 7d7306c

Browse files
Apply PR #23407: feat: desktop WSL onboarding + happy experience
2 parents 575d3ac + 930526d commit 7d7306c

26 files changed

Lines changed: 2601 additions & 342 deletions

packages/app/src/app.tsx

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import { PromptProvider } from "@/context/prompt"
4343
import { ServerConnection, ServerProvider, serverName, useServer } from "@/context/server"
4444
import { SettingsProvider, useSettings } from "@/context/settings"
4545
import { TerminalProvider } from "@/context/terminal"
46+
import { WslServersProvider } from "@/context/wsl-servers"
4647
import DirectoryLayout from "@/pages/directory-layout"
4748
import Layout from "@/pages/layout"
4849
import { ErrorPage } from "./pages/error"
@@ -71,7 +72,7 @@ declare global {
7172
__OPENCODE__?: {
7273
updaterEnabled?: boolean
7374
deepLinks?: string[]
74-
wsl?: boolean
75+
activeServer?: string
7576
}
7677
api?: {
7778
setTitlebar?: (theme: { mode: "light" | "dark" }) => Promise<void>
@@ -171,11 +172,13 @@ export function AppBaseProviders(props: ParentProps<{ locale?: Locale }>) {
171172
}}
172173
>
173174
<QueryProvider>
174-
<DialogProvider>
175-
<MarkedProvider>
176-
<FileComponentProvider component={File}>{props.children}</FileComponentProvider>
177-
</MarkedProvider>
178-
</DialogProvider>
175+
<WslServersProvider>
176+
<DialogProvider>
177+
<MarkedProvider>
178+
<FileComponentProvider component={File}>{props.children}</FileComponentProvider>
179+
</MarkedProvider>
180+
</DialogProvider>
181+
</WslServersProvider>
179182
</QueryProvider>
180183
</ErrorBoundary>
181184
</UiI18nBridge>
@@ -298,11 +301,11 @@ function ConnectionError(props: { onRetry?: () => void; onServerSelected?: (key:
298301
)
299302
}
300303

301-
function ServerKey(props: ParentProps) {
304+
function ServerKey(props: { children: (key: ServerConnection.Key) => JSX.Element }) {
302305
const server = useServer()
303306
return (
304307
<Show when={server.key} keyed>
305-
{props.children}
308+
{(key) => props.children(key)}
306309
</Show>
307310
)
308311
}
@@ -319,22 +322,24 @@ export function AppInterface(props: {
319322
<ServersProvider>
320323
<ConnectionGate disableHealthCheck={props.disableHealthCheck}>
321324
<ServerKey>
322-
<QueryProvider>
323-
<ServerSDKProvider>
324-
<ServerSyncProvider>
325-
<Dynamic
326-
component={props.router ?? Router}
327-
root={(routerProps) => <RouterRoot appChildren={props.children}>{routerProps.children}</RouterRoot>}
328-
>
329-
<Route path="/" component={HomeRoute} />
330-
<Route path="/:dir" component={DirectoryLayout}>
331-
<Route path="/" component={() => <Navigate href="session" />} />
332-
<Route path="/session/:id?" component={SessionRoute} />
333-
</Route>
334-
</Dynamic>
335-
</ServerSyncProvider>
336-
</ServerSDKProvider>
337-
</QueryProvider>
325+
{() => (
326+
<QueryProvider>
327+
<ServerSDKProvider>
328+
<ServerSyncProvider>
329+
<Dynamic
330+
component={props.router ?? Router}
331+
root={(routerProps) => <RouterRoot appChildren={props.children}>{routerProps.children}</RouterRoot>}
332+
>
333+
<Route path="/" component={HomeRoute} />
334+
<Route path="/:dir" component={DirectoryLayout}>
335+
<Route path="/" component={() => <Navigate href="session" />} />
336+
<Route path="/session/:id?" component={SessionRoute} />
337+
</Route>
338+
</Dynamic>
339+
</ServerSyncProvider>
340+
</ServerSDKProvider>
341+
</QueryProvider>
342+
)}
338343
</ServerKey>
339344
</ConnectionGate>
340345
</ServersProvider>

0 commit comments

Comments
 (0)