fix - Inertia 3: remove page component from @vite directive, fix useCallback hook order violation

This commit is contained in:
myrmidex 2026-05-03 00:21:15 +02:00
parent 221a0f879d
commit fa69d78afe
2 changed files with 30 additions and 29 deletions

View file

@ -167,31 +167,7 @@ export default function Dashboard() {
profitLossPercentage, profitLossPercentage,
}; };
if (loading) { // Handle onboarding completion — must be before any early returns (Rules of Hooks)
return (
<>
<Head title="Dashboard" />
<TerminalSpinner fullScreen />
</>
);
}
// 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
const handleOnboardingComplete = useCallback(async () => { const handleOnboardingComplete = useCallback(async () => {
const [entriesResponse, priceResponse, milestonesResponse, trackerResponse] = await Promise.all([ const [entriesResponse, priceResponse, milestonesResponse, trackerResponse] = await Promise.all([
fetch('/entries/summary'), fetch('/entries/summary'),
@ -225,14 +201,39 @@ export default function Dashboard() {
} }
if (trackerResponse.ok) { if (trackerResponse.ok) {
const tracker = await trackerResponse.json(); const trackerData = await trackerResponse.json();
setCurrentAsset(tracker?.asset ?? null); setTracker(trackerData);
setPriceTrackingEnabled(tracker?.price_tracking_enabled ?? false); setCurrentAsset(trackerData?.asset ?? null);
setPriceTrackingEnabled(trackerData?.price_tracking_enabled ?? false);
} }
setNeedsOnboarding(totalQuantity === 0 || milestonesCount === 0); setNeedsOnboarding(totalQuantity === 0 || milestonesCount === 0);
}, []); }, []);
if (loading) {
return (
<>
<Head title="Dashboard" />
<TerminalSpinner fullScreen />
</>
);
}
// 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 // Show onboarding if needed
if (needsOnboarding) { if (needsOnboarding) {
return ( return (

View file

@ -43,7 +43,7 @@
@routes @routes
@viteReactRefresh @viteReactRefresh
@vite(['resources/js/app.tsx', "resources/js/pages/{$page['component']}.tsx"]) @vite(['resources/js/app.tsx'])
@inertiaHead @inertiaHead
</head> </head>
<body class="font-sans antialiased"> <body class="font-sans antialiased">