From c73b634b44e68887495effd2a705133566ebca45 Mon Sep 17 00:00:00 2001 From: myrmidex Date: Sun, 3 May 2026 02:30:55 +0200 Subject: [PATCH] fix - Onboarding: skip step 1 if tracker exists, treat 409 as success in CreateTrackerStep --- .../js/components/Onboarding/CreateTrackerStep.tsx | 2 +- .../js/components/Onboarding/OnboardingFlow.tsx | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/resources/js/components/Onboarding/CreateTrackerStep.tsx b/resources/js/components/Onboarding/CreateTrackerStep.tsx index 275e45b..2669d19 100644 --- a/resources/js/components/Onboarding/CreateTrackerStep.tsx +++ b/resources/js/components/Onboarding/CreateTrackerStep.tsx @@ -49,7 +49,7 @@ export default function CreateTrackerStep({ onSuccess }: CreateTrackerStepProps) }), }); - if (response.ok || response.status === 302) { + if (response.ok || response.status === 201 || response.status === 409) { onSuccess(priceTracking); } else { const data = await response.json(); diff --git a/resources/js/components/Onboarding/OnboardingFlow.tsx b/resources/js/components/Onboarding/OnboardingFlow.tsx index 78aa7a0..93d77a6 100644 --- a/resources/js/components/Onboarding/OnboardingFlow.tsx +++ b/resources/js/components/Onboarding/OnboardingFlow.tsx @@ -72,6 +72,19 @@ export default function OnboardingFlow({ onComplete }: OnboardingFlowProps) { const [currentStep, setCurrentStep] = useState(0); const [steps, setSteps] = useState([]); + // On mount: check if a tracker already exists and skip step 1 if so + useEffect(() => { + fetch('/tracker') + .then(r => r.ok ? r.json() : null) + .then(tracker => { + if (tracker) { + setPriceTracking(tracker.price_tracking_enabled ?? false); + setTrackerCreated(true); + } + }) + .catch(() => {}); + }, []); + const checkOnboardingStatus = useCallback(async (currentSteps: OnboardingStep[]) => { try { const [entriesData, milestonesData, priceData] = await Promise.all([