fix(canvas): replace AuthGate null loading state with zinc-950 backdrop

Closes #430.

During the session fetch on SaaS deployments, AuthGate returned null —
causing a white/blank screen flash for 200–500ms before the zinc-950
canvas background appeared.

Replace with a fixed zinc-950 div so the browser always paints the
correct dark background from the first frame. The canvas loading UI
renders on top once the session resolves, with no visible transition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Canvas Agent 2026-04-16 10:30:24 +00:00
parent 7fc2da2146
commit 29d8f18952

View File

@ -56,8 +56,9 @@ export function AuthGate({ children }: { children: ReactNode }) {
}, [state]);
if (state.kind === "loading") {
// Minimal placeholder; canvas has its own loading UI downstream.
return null;
// Zinc-950 backdrop matches the canvas background so the browser
// never paints a white flash while the session round-trip resolves.
return <div className="fixed inset-0 bg-zinc-950" aria-hidden="true" />;
}
if (state.kind === "anonymous" && !state.skipRedirect) {
// Redirect already firing from the effect above; render nothing in