fix - Inertia 3: remove page component from @vite directive, fix useCallback hook order violation
This commit is contained in:
parent
221a0f879d
commit
fa69d78afe
2 changed files with 30 additions and 29 deletions
|
|
@ -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 (
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue