fix(onboarding): prefill verified email in a disabled field; bump SDK 0.2.4
- Onboarding reads the OAuth email (session-storage hint + live Supabase session via getUserEmail) so Continue is no longer disabled. - Replace the empty 'Signed in as' banner with a disabled, prefilled email field (email is fixed — Google-verified). - Stash the verified email at OAuth callback time for onboarding prefill. - Bump @abe-kap/appshell-sdk to ^0.2.4 (getUserEmail via getSession).
This commit is contained in:
@@ -24,7 +24,7 @@ const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
|
||||
export function LoginFlow() {
|
||||
const router = useRouter();
|
||||
const { login, loginWithOAuth, completeOAuthLogin } = useAuth();
|
||||
const { login, loginWithOAuth, completeOAuthLogin, getUserEmail } = useAuth();
|
||||
const { ready, sdk } = useAppShell();
|
||||
const [step, setStep] = useState<Step>("identify");
|
||||
const [email, setEmail] = useState("");
|
||||
@@ -86,13 +86,16 @@ export function LoginFlow() {
|
||||
registered = !!st?.registered;
|
||||
} catch { registered = false; }
|
||||
window.history.replaceState({}, "", "/portal/login");
|
||||
router.replace(registered ? "/dashboard" : "/portal/onboarding");
|
||||
if (registered) { router.replace("/dashboard"); return; }
|
||||
// Capture the verified email now (session is fresh) so onboarding prefills it.
|
||||
try { const em = await getUserEmail(); if (em) sessionStorage.setItem("onboard_email", em); } catch { /* ignore */ }
|
||||
router.replace("/portal/onboarding");
|
||||
})
|
||||
.catch(() => {
|
||||
setFlash("Google sign-in didn't complete. Please try again.");
|
||||
replace("identify");
|
||||
});
|
||||
}, [ready, completeOAuthLogin, router, sdk]);
|
||||
}, [ready, completeOAuthLogin, router, sdk, getUserEmail]);
|
||||
|
||||
/* ---- auth resolution ---- */
|
||||
function afterAuth(factor: "password" | "passkey" | "otp" | "totp" | "push" | "social") {
|
||||
|
||||
Reference in New Issue
Block a user