Updated checkout to wait for backend confirmation before advancing, added a “Processing payment…” state with retry/ refresh fallback, and now use Paddle totals/currency for purchase records + confirmation emails (with new email translations).
This commit is contained in:
@@ -85,15 +85,6 @@ const WizardBody: React.FC<{
|
||||
const hasMountedRef = useRef(false);
|
||||
const { trackEvent } = useAnalytics();
|
||||
|
||||
const isFreeSelected = useMemo(() => {
|
||||
if (!selectedPackage) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const priceValue = Number(selectedPackage.price);
|
||||
return Number.isFinite(priceValue) && priceValue <= 0;
|
||||
}, [selectedPackage]);
|
||||
|
||||
const stepConfig = useMemo(() =>
|
||||
baseStepConfig.map(step => ({
|
||||
id: step.id,
|
||||
@@ -159,11 +150,11 @@ const WizardBody: React.FC<{
|
||||
}
|
||||
|
||||
if (currentStep === 'payment') {
|
||||
return isFreeSelected || paymentCompleted;
|
||||
return paymentCompleted;
|
||||
}
|
||||
|
||||
return true;
|
||||
}, [atLastStep, authUser, currentStep, isAuthenticated, isFreeSelected, paymentCompleted, selectedPackage]);
|
||||
}, [atLastStep, authUser, currentStep, isAuthenticated, paymentCompleted, selectedPackage]);
|
||||
|
||||
const shouldShowNextButton = useMemo(() => currentStep !== 'confirmation', [currentStep]);
|
||||
const highlightNextCta = currentStep === 'payment' && paymentCompleted;
|
||||
|
||||
Reference in New Issue
Block a user