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,
|
||||
};
|
||||
|
||||
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 (
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
Loading…
Reference in a new issue