From 1f1100c289aa5f2181b7f6bdb5e42aa649b74c00 Mon Sep 17 00:00:00 2001 From: Lars Date: Sat, 21 Mar 2026 08:43:55 +0100 Subject: [PATCH] refactor: restructure nutrition page with two-level tabs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Layout changes: - Input tabs at top: ✏️ Einzelerfassung (default) | πŸ“₯ Import - Single entry form shown by default (was hidden in data tab) - Import panel + history only visible in Import tab - Analysis section below (unchanged): OverviewCards + Analysis tabs Benefits: - Cleaner separation of input methods vs analysis - Manual entry more discoverable (was buried in data tab) - Import history only shown when relevant - Reduces clutter on initial view Co-Authored-By: Claude Opus 4.6 --- frontend/src/pages/NutritionPage.jsx | 55 ++++++++++++++++++---------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/frontend/src/pages/NutritionPage.jsx b/frontend/src/pages/NutritionPage.jsx index fa0ef30..ba48643 100644 --- a/frontend/src/pages/NutritionPage.jsx +++ b/frontend/src/pages/NutritionPage.jsx @@ -735,10 +735,11 @@ function CalorieBalance({ data, profile }) { // ── Main Page ───────────────────────────────────────────────────────────────── export default function NutritionPage() { - const [tab, setTab] = useState('data') // BUG-002 fix: show data first + const [inputTab, setInputTab] = useState('entry') // 'entry' or 'import' + const [analysisTab,setAnalysisTab] = useState('data') const [corrData, setCorr] = useState([]) const [weekly, setWeekly] = useState([]) - const [entries, setEntries]= useState([]) // BUG-002 fix: raw data + const [entries, setEntries]= useState([]) const [profile, setProf] = useState(null) const [loading, setLoad] = useState(true) const [hasData, setHasData]= useState(false) @@ -767,38 +768,52 @@ export default function NutritionPage() {

ErnΓ€hrung

- - + {/* Input Method Tabs */} +
+ + +
+ + {/* Entry Form */} + {inputTab==='entry' && } + + {/* Import Panel + History */} + {inputTab==='import' && ( + <> + + + + )} {loading &&
} {!loading && !hasData && (

Noch keine ErnΓ€hrungsdaten

-

Importiere deinen FDDB-Export oben um Auswertungen zu sehen.

+

Erfasse Daten ΓΌber Einzelerfassung oder importiere deinen FDDB-Export.

)} + {/* Analysis Section */} {!loading && hasData && ( <>
- - - - - + + + + +
- {tab==='data' && ( - <> - - - - )} + {analysisTab==='data' && } - {tab==='overview' && ( + {analysisTab==='overview' && (
Makro-Verteilung pro Woche (Ø g/Tag)
@@ -810,7 +825,7 @@ export default function NutritionPage() {
)} - {tab==='weight' && ( + {analysisTab==='weight' && (
Kalorien vs. Gewichtsverlauf
@@ -826,7 +841,7 @@ export default function NutritionPage() {
)} - {tab==='protein' && ( + {analysisTab==='protein' && (
Protein vs. Magermasse
@@ -842,7 +857,7 @@ export default function NutritionPage() {
)} - {tab==='balance' && ( + {analysisTab==='balance' && (
Kaloriendefizit / -ΓΌberschuss