diff --git a/resources/js/pages/dashboard.tsx b/resources/js/pages/dashboard.tsx index beac959..a3b1ebe 100644 --- a/resources/js/pages/dashboard.tsx +++ b/resources/js/pages/dashboard.tsx @@ -167,31 +167,7 @@ export default function Dashboard() { profitLossPercentage, }; - if (loading) { - return ( - <> - - - - ); - } - - // Toggle handlers with cascading behavior - const handleLedClick = () => { - const newShowProgressBar = !showProgressBar; - setShowProgressBar(newShowProgressBar); - if (!newShowProgressBar) { - // If hiding progress bar, also hide stats box - setShowStatsBox(false); - } - }; - - const handleProgressClick = () => { - setShowStatsBox(!showStatsBox); - setActiveForm(null) - }; - - // Handle onboarding completion + // Handle onboarding completion — must be before any early returns (Rules of Hooks) const handleOnboardingComplete = useCallback(async () => { const [entriesResponse, priceResponse, milestonesResponse, trackerResponse] = await Promise.all([ fetch('/entries/summary'), @@ -225,14 +201,39 @@ export default function Dashboard() { } if (trackerResponse.ok) { - const tracker = await trackerResponse.json(); - setCurrentAsset(tracker?.asset ?? null); - setPriceTrackingEnabled(tracker?.price_tracking_enabled ?? false); + const trackerData = await trackerResponse.json(); + setTracker(trackerData); + setCurrentAsset(trackerData?.asset ?? null); + setPriceTrackingEnabled(trackerData?.price_tracking_enabled ?? false); } setNeedsOnboarding(totalQuantity === 0 || milestonesCount === 0); }, []); + if (loading) { + return ( + <> + + + + ); + } + + // Toggle handlers with cascading behavior + const handleLedClick = () => { + const newShowProgressBar = !showProgressBar; + setShowProgressBar(newShowProgressBar); + if (!newShowProgressBar) { + // If hiding progress bar, also hide stats box + setShowStatsBox(false); + } + }; + + const handleProgressClick = () => { + setShowStatsBox(!showStatsBox); + setActiveForm(null) + }; + // Show onboarding if needed if (needsOnboarding) { return ( diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index f132673..66247d2 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -43,7 +43,7 @@ @routes @viteReactRefresh - @vite(['resources/js/app.tsx', "resources/js/pages/{$page['component']}.tsx"]) + @vite(['resources/js/app.tsx']) @inertiaHead