summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/desktop/src/index.tsx35
1 files changed, 24 insertions, 11 deletions
diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx
index 4e0bb8b20..98af589dd 100644
--- a/packages/desktop/src/index.tsx
+++ b/packages/desktop/src/index.tsx
@@ -472,12 +472,10 @@ render(() => {
}
return (
- <Show when={defaultServer.loading ? false : defaultServer.latest}>
- {(defaultServer) => (
- <AppInterface defaultServer={defaultServer() ?? ServerConnection.key(server)} servers={[server]}>
- <Inner />
- </AppInterface>
- )}
+ <Show when={!defaultServer.loading}>
+ <AppInterface defaultServer={defaultServer.latest ?? ServerConnection.key(server)} servers={[server]}>
+ <Inner />
+ </AppInterface>
</Show>
)
}}
@@ -492,19 +490,34 @@ type ServerReadyData = { url: string; password: string | null }
// Gate component that waits for the server to be ready
function ServerGate(props: { children: (data: Accessor<ServerReadyData>) => JSX.Element }) {
const [serverData] = createResource(() => commands.awaitInitialization(new Channel<InitStep>() as any))
- if (serverData.state === "errored") throw serverData.error
return (
<Show
- when={serverData.state !== "pending" && serverData()}
+ when={serverData.state !== "errored"}
fallback={
- <div class="h-screen w-screen flex flex-col items-center justify-center bg-background-base">
- <Splash class="w-16 h-20 opacity-50 animate-pulse" />
+ <div class="h-screen w-screen flex flex-col items-center justify-center bg-background-base gap-4">
+ <Splash class="w-16 h-20 opacity-50" />
+ <div class="max-w-md px-4 text-center">
+ <p class="text-sm font-medium text-red-400">Failed to start server</p>
+ <p class="mt-2 text-xs text-zinc-400 break-words whitespace-pre-wrap">
+ {String(serverData.error ?? "Unknown error")}
+ </p>
+ </div>
<div data-tauri-decorum-tb class="flex flex-row absolute top-0 right-0 z-10 h-10" />
</div>
}
>
- {(data) => props.children(data)}
+ <Show
+ when={serverData.state !== "pending" && serverData()}
+ fallback={
+ <div class="h-screen w-screen flex flex-col items-center justify-center bg-background-base">
+ <Splash class="w-16 h-20 opacity-50 animate-pulse" />
+ <div data-tauri-decorum-tb class="flex flex-row absolute top-0 right-0 z-10 h-10" />
+ </div>
+ }
+ >
+ {(data) => props.children(data)}
+ </Show>
</Show>
)
}