debug(frontend): log redirect paths via navigateAndLog for onboarding flow

This commit is contained in:
ajaysi
2026-04-05 07:03:03 +05:30
parent a43c229809
commit 2ab4471632

View File

@@ -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;