debug(frontend): log redirect paths via navigateAndLog for onboarding flow
This commit is contained in:
@@ -8,6 +8,11 @@ import { shouldSkipOnboarding } from '../../utils/demoMode';
|
|||||||
import ConnectionErrorPage from '../shared/ConnectionErrorPage';
|
import ConnectionErrorPage from '../shared/ConnectionErrorPage';
|
||||||
|
|
||||||
const InitialRouteHandler: React.FC = () => {
|
const InitialRouteHandler: React.FC = () => {
|
||||||
|
// Helper to log and navigate in a single place
|
||||||
|
const navigateAndLog = (to: string) => {
|
||||||
|
console.log(`InitialRouteHandler: Redirecting to ${to}`);
|
||||||
|
return <Navigate to={to} replace />;
|
||||||
|
};
|
||||||
const { loading, error, isOnboardingComplete, initializeOnboarding, data } = useOnboarding();
|
const { loading, error, isOnboardingComplete, initializeOnboarding, data } = useOnboarding();
|
||||||
const { subscription, loading: subscriptionLoading, checkSubscription } = useSubscription();
|
const { subscription, loading: subscriptionLoading, checkSubscription } = useSubscription();
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
@@ -83,7 +88,7 @@ const InitialRouteHandler: React.FC = () => {
|
|||||||
|
|
||||||
if (isCheckoutSuccess && subscription?.active && shouldSkipOnboarding()) {
|
if (isCheckoutSuccess && subscription?.active && shouldSkipOnboarding()) {
|
||||||
console.log('InitialRouteHandler: Early redirect - Stripe checkout success in demo mode → Podcast Maker');
|
console.log('InitialRouteHandler: Early redirect - Stripe checkout success in demo mode → Podcast Maker');
|
||||||
return <Navigate to="/podcast-maker" replace />;
|
return navigateAndLog("/podcast-maker");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (connectionError.hasError) {
|
if (connectionError.hasError) {
|
||||||
@@ -121,10 +126,12 @@ const InitialRouteHandler: React.FC = () => {
|
|||||||
isDemoMode,
|
isDemoMode,
|
||||||
isOnboardingComplete,
|
isOnboardingComplete,
|
||||||
subscription: subscription ? { plan: subscription.plan, active: subscription.active } : null,
|
subscription: subscription ? { plan: subscription.plan, active: subscription.active } : null,
|
||||||
|
subscriptionLoading,
|
||||||
loading,
|
loading,
|
||||||
data: !!data
|
data: !!data
|
||||||
});
|
});
|
||||||
const isActiveSubscriber = Boolean(subscription && subscription.active && subscription.plan !== 'none');
|
const isActiveSubscriber = Boolean(subscription && subscription.active && subscription.plan !== 'none');
|
||||||
|
console.log('InitialRouteHandler: isActiveSubscriber =', isActiveSubscriber);
|
||||||
const waitingForOnboardingInit = !isDemoMode && isActiveSubscriber && (loading || !data);
|
const waitingForOnboardingInit = !isDemoMode && isActiveSubscriber && (loading || !data);
|
||||||
if (waitingForOnboardingInit) {
|
if (waitingForOnboardingInit) {
|
||||||
return (
|
return (
|
||||||
@@ -186,7 +193,7 @@ const InitialRouteHandler: React.FC = () => {
|
|||||||
if (!subscription) {
|
if (!subscription) {
|
||||||
if (isOnboardingComplete) {
|
if (isOnboardingComplete) {
|
||||||
console.log('InitialRouteHandler: Onboarding complete but no subscription data → Dashboard (allow access)');
|
console.log('InitialRouteHandler: Onboarding complete but no subscription data → Dashboard (allow access)');
|
||||||
return <Navigate to="/dashboard" replace />;
|
return navigateAndLog("/dashboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subscriptionLoading) {
|
if (subscriptionLoading) {
|
||||||
@@ -210,7 +217,7 @@ const InitialRouteHandler: React.FC = () => {
|
|||||||
if (!subscription) {
|
if (!subscription) {
|
||||||
if (isOnboardingComplete) {
|
if (isOnboardingComplete) {
|
||||||
console.log('InitialRouteHandler: Onboarding complete but no subscription data → Dashboard (allow access)');
|
console.log('InitialRouteHandler: Onboarding complete but no subscription data → Dashboard (allow access)');
|
||||||
return <Navigate to="/dashboard" replace />;
|
return navigateAndLog("/dashboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subscriptionLoading) {
|
if (subscriptionLoading) {
|
||||||
@@ -233,11 +240,11 @@ const InitialRouteHandler: React.FC = () => {
|
|||||||
|
|
||||||
if (shouldSkipOnboarding()) {
|
if (shouldSkipOnboarding()) {
|
||||||
console.log('InitialRouteHandler: Demo mode - no subscription but allowing access to podcast-maker');
|
console.log('InitialRouteHandler: Demo mode - no subscription but allowing access to podcast-maker');
|
||||||
return <Navigate to="/podcast-maker" replace />;
|
return navigateAndLog("/podcast-maker");
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('InitialRouteHandler: No subscription data after check → Pricing page');
|
console.log('InitialRouteHandler: No subscription data after check → Pricing page');
|
||||||
return <Navigate to="/pricing" replace />;
|
return navigateAndLog("/pricing");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,16 +260,17 @@ const InitialRouteHandler: React.FC = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!isOnboardingComplete) {
|
if (!isOnboardingComplete) {
|
||||||
|
console.log('InitialRouteHandler: isOnboardingComplete = false, shouldSkipOnboarding() =', shouldSkipOnboarding());
|
||||||
if (shouldSkipOnboarding()) {
|
if (shouldSkipOnboarding()) {
|
||||||
console.log('InitialRouteHandler: Demo mode - skipping onboarding → Podcast Maker');
|
console.log('InitialRouteHandler: Demo mode - skipping onboarding → Podcast Maker');
|
||||||
return <Navigate to="/podcast-maker" replace />;
|
return navigateAndLog("/podcast-maker");
|
||||||
}
|
}
|
||||||
console.log('InitialRouteHandler: Subscription active but onboarding incomplete → Onboarding');
|
console.log('InitialRouteHandler: Subscription active but onboarding incomplete → Onboarding');
|
||||||
return <Navigate to="/onboarding" replace />;
|
return navigateAndLog("/onboarding");
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('InitialRouteHandler: All set (subscription + onboarding) → Dashboard');
|
console.log('InitialRouteHandler: All set (subscription + onboarding) → Dashboard');
|
||||||
return <Navigate to="/dashboard" replace />;
|
return navigateAndLog("/dashboard");
|
||||||
};
|
};
|
||||||
|
|
||||||
export default InitialRouteHandler;
|
export default InitialRouteHandler;
|
||||||
|
|||||||
Reference in New Issue
Block a user