@@ -472,12 +472,10 @@ render(() => {
472472 }
473473
474474 return (
475- < Show when = { defaultServer . loading ? false : defaultServer . latest } >
476- { ( defaultServer ) => (
477- < AppInterface defaultServer = { defaultServer ( ) ?? ServerConnection . key ( server ) } servers = { [ server ] } >
478- < Inner />
479- </ AppInterface >
480- ) }
475+ < Show when = { ! defaultServer . loading } >
476+ < AppInterface defaultServer = { defaultServer . latest ?? ServerConnection . key ( server ) } servers = { [ server ] } >
477+ < Inner />
478+ </ AppInterface >
481479 </ Show >
482480 )
483481 } }
@@ -492,19 +490,34 @@ type ServerReadyData = { url: string; password: string | null }
492490// Gate component that waits for the server to be ready
493491function ServerGate ( props : { children : ( data : Accessor < ServerReadyData > ) => JSX . Element } ) {
494492 const [ serverData ] = createResource ( ( ) => commands . awaitInitialization ( new Channel < InitStep > ( ) as any ) )
495- if ( serverData . state === "errored" ) throw serverData . error
496493
497494 return (
498495 < Show
499- when = { serverData . state !== "pending" && serverData ( ) }
496+ when = { serverData . state !== "errored" }
500497 fallback = {
501- < div class = "h-screen w-screen flex flex-col items-center justify-center bg-background-base" >
502- < Splash class = "w-16 h-20 opacity-50 animate-pulse" />
498+ < div class = "h-screen w-screen flex flex-col items-center justify-center bg-background-base gap-4" >
499+ < Splash class = "w-16 h-20 opacity-50" />
500+ < div class = "max-w-md px-4 text-center" >
501+ < p class = "text-sm font-medium text-red-400" > Failed to start server</ p >
502+ < p class = "mt-2 text-xs text-zinc-400 break-words whitespace-pre-wrap" >
503+ { String ( serverData . error ?? "Unknown error" ) }
504+ </ p >
505+ </ div >
503506 < div data-tauri-decorum-tb class = "flex flex-row absolute top-0 right-0 z-10 h-10" />
504507 </ div >
505508 }
506509 >
507- { ( data ) => props . children ( data ) }
510+ < Show
511+ when = { serverData . state !== "pending" && serverData ( ) }
512+ fallback = {
513+ < div class = "h-screen w-screen flex flex-col items-center justify-center bg-background-base" >
514+ < Splash class = "w-16 h-20 opacity-50 animate-pulse" />
515+ < div data-tauri-decorum-tb class = "flex flex-row absolute top-0 right-0 z-10 h-10" />
516+ </ div >
517+ }
518+ >
519+ { ( data ) => props . children ( data ) }
520+ </ Show >
508521 </ Show >
509522 )
510523}
0 commit comments