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,
};
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)
};
// 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 (
<>
<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
if (needsOnboarding) {
return (

View file

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