fix(portal): fix isInitializing race condition causing premature redirect

setIsInitializing(false) was in .finally() which fires BEFORE the
outer .then() chain completes, causing redirect to fire before
setSession was called. Now setIsInitializing(false) is called
explicitly inside success/error handlers after setSession completes.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Barkley Trimsworth
2026-03-30 19:24:05 +00:00
parent 49bfd8aea9
commit 3b04f374b8
+4 -2
View File
@@ -86,6 +86,7 @@ export function CustomerPortal() {
.then((r) => { .then((r) => {
if (!r.ok) { if (!r.ok) {
setSessionError("Failed to create portal session. Please try again."); setSessionError("Failed to create portal session. Please try again.");
setIsInitializing(false);
return null; return null;
} }
return r.json() as Promise<ImpersonationSession>; return r.json() as Promise<ImpersonationSession>;
@@ -96,11 +97,12 @@ export function CustomerPortal() {
setClientName(devUser.name); setClientName(devUser.name);
setSessionError(null); setSessionError(null);
} }
setIsInitializing(false);
}) })
.catch(() => { .catch(() => {
setSessionError("Failed to connect. Please check your connection and try again."); setSessionError("Failed to connect. Please check your connection and try again.");
}) setIsInitializing(false);
.finally(() => setIsInitializing(false)); });
} else { } else {
// No sessionId param and no dev user — init is complete with no session // No sessionId param and no dev user — init is complete with no session
setIsInitializing(false); setIsInitializing(false);