import { useEffect, useState } from 'react'
import { api } from '../lib/api.js'
/** UseCase3001, 3002 and 3004. Read-only by design: see TrainerController. */
export default function Trainer() {
const [email, setEmail] = useState('marija.trajkovska@gmail.com')
const [from, setFrom] = useState('2026-01-20')
const [to, setTo] = useState('2026-02-01')
const [intake, setIntake] = useState([])
const [macros, setMacros] = useState([])
const [progress, setProgress] = useState([])
const [density, setDensity] = useState([])
const [nutrient, setNutrient] = useState('Protein')
const [error, setError] = useState(null)
const loadClient = async () => {
setError(null)
try {
setIntake(await api.get(`/trainer/clients/${email}/intake?from=${from}&to=${to}`))
setMacros(await api.get(`/trainer/clients/${email}/macros?from=${from}&to=${to}`))
setProgress(await api.get(`/trainer/clients/${email}/progress`))
} catch (e) { setError(e.message) }
}
const loadDensity = () =>
api.get(`/trainer/analysis/nutrient-density?nutrient=${nutrient}&limit=8`)
.then(setDensity).catch(e => setError(e.message))
useEffect(() => { loadDensity() }, [])
return (
{error &&
{error}
}
{intake.length > 0 && (
Daily intake
| day | kcal | meals |
{intake.map(d => (
| {d.day} |
{d.kcalConsumed} | {d.mealsLogged} |
))}
)}
{macros.length > 0 && (
Macronutrients over the period
{macros.map(m => (
| {m.nutrient} | {m.total} {m.unit} |
))}
)}
{progress.length > 0 && (
Biometric progress
| date | weight | change | BMI |
{progress.map(p => (
| {p.date} | {p.weight} |
{p.changeSincePrevious ?? '—'} | {p.bmi ?? '—'} |
))}
)}
)
}