final steps
This commit is contained in:
@@ -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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user