import { useState, useEffect } from 'react' import { Check } from 'lucide-react' import dayjs from 'dayjs' import { api } from '../utils/api' /** * Tagesgewicht erfassen (wie Dashboard „Gewicht heute“). */ export default function QuickWeightEntry({ onSaved }) { const [input, setInput] = useState('') const [saving, setSaving] = useState(false) const [saved, setSaved] = useState(false) const [error, setError] = useState(null) const [weightUsage, setWeightUsage] = useState(null) const today = dayjs().format('YYYY-MM-DD') const loadUsage = () => { api .getFeatureUsage() .then((features) => { const weightFeature = features.find((f) => f.feature_id === 'weight_entries') setWeightUsage(weightFeature) }) .catch((err) => console.error('Failed to load usage:', err)) } useEffect(() => { api.weightStats().then((s) => { if (s?.latest?.date === today) setInput(String(s.latest.weight)) }) loadUsage() }, [today]) const handleSave = async () => { const w = parseFloat(input) if (!w || w < 20 || w > 300) return setSaving(true) setError(null) try { await api.upsertWeight(today, w) setSaved(true) await loadUsage() onSaved?.() setTimeout(() => setSaved(false), 2000) } catch (err) { console.error('Save failed:', err) setError(err.message || 'Fehler beim Speichern') setTimeout(() => setError(null), 5000) } finally { setSaving(false) } } const isDisabled = saving || !input || (weightUsage && !weightUsage.allowed) const tooltipText = weightUsage && !weightUsage.allowed ? `Limit erreicht (${weightUsage.used}/${weightUsage.limit}). Kontaktiere den Admin oder warte bis zum nächsten Reset.` : '' return (