v0.3.0 #45

Merged
myrmidex merged 37 commits from release/0.3.0 into main 2026-05-09 15:08:38 +02:00
2 changed files with 30 additions and 29 deletions
Showing only changes of commit fa69d78afe - Show all commits

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">