final steps

This commit is contained in:
KS Jannette
2026-03-29 15:39:20 -04:00
parent 0d7bc65995
commit cde9f52f52
3 changed files with 112 additions and 3 deletions

View File

@@ -38,8 +38,14 @@ export default function Subscribe() {
useEffect(() => {
const payment = searchParams.get("payment");
const sessionId = searchParams.get("session_id");
const signupLockKey = sessionId
? `kp_onboard_signup_started_${sessionId}`
: null;
if (payment === "cancelled") {
if (signupLockKey) sessionStorage.removeItem(signupLockKey);
sessionStorage.removeItem("kp_onboard_email");
sessionStorage.removeItem("kp_onboard_pw");
setSearchParams({}, { replace: true });
setStep(2);
setError("Payment was cancelled. Please try again.");
@@ -54,14 +60,24 @@ export default function Subscribe() {
const savedEmail = sessionStorage.getItem("kp_onboard_email");
const savedPw = sessionStorage.getItem("kp_onboard_pw");
if (!savedEmail || !savedPw) {
if (signupLockKey) sessionStorage.removeItem(signupLockKey);
setSearchParams({}, { replace: true });
setError("Session expired. Please start the signup process again.");
setStep(1);
setLoading(false);
return;
}
// Guard against duplicate signup attempts caused by repeated effects.
if (signupLockKey && sessionStorage.getItem(signupLockKey) === "1") {
setLoading(true);
return;
}
setLoading(true);
if (signupLockKey) sessionStorage.setItem(signupLockKey, "1");
signup(savedEmail, savedPw).catch((err) => {
if (signupLockKey) sessionStorage.removeItem(signupLockKey);
setSearchParams({}, { replace: true });
setError("Account creation failed: " + err.message);
setStep(1);
@@ -73,6 +89,7 @@ export default function Subscribe() {
// Phase 2: authenticated — verify the checkout and go to the dashboard.
setSearchParams({}, { replace: true });
setLoading(true);
if (signupLockKey) sessionStorage.removeItem(signupLockKey);
sessionStorage.removeItem("kp_onboard_email");
sessionStorage.removeItem("kp_onboard_pw");