Personuppgifter
{!editing && ( )}Aktuella mätningar
{latestMeasurement ? (Inga mätningar registrerade
)}Styrkerekord (1RM)
{latestStrength ? (Inga styrkerekord registrerade
)}import { useState, useEffect } from 'react' import { useAuth } from '../context/AuthContext' const API_URL = '/api' function ProfilePage({ onBack }) { const { user, logout } = useAuth() const [profile, setProfile] = useState(null) const [measurements, setMeasurements] = useState(null) const [strength, setStrength] = useState(null) const [editing, setEditing] = useState(false) const [loading, setLoading] = useState(true) const [saving, setSaving] = useState(false) // Edit form state const [form, setForm] = useState({}) useEffect(() => { fetchData() }, []) const fetchData = async () => { try { const [profileRes, measurementsRes, strengthRes] = await Promise.all([ fetch(`${API_URL}/user/profile/${user?.id || 1}`), fetch(`${API_URL}/user/measurements/${user?.id || 1}`), fetch(`${API_URL}/user/strength/${user?.id || 1}`) ]) const profileData = await profileRes.json() const measurementsData = await measurementsRes.json() const strengthData = await strengthRes.json() setProfile(profileData) setMeasurements(measurementsData) setStrength(strengthData) setForm(profileData) setLoading(false) } catch (err) { console.error('Failed to fetch profile:', err) setLoading(false) } } const handleSave = async () => { setSaving(true) try { const res = await fetch(`${API_URL}/user/profile/${user?.id || 1}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(form) }) const updated = await res.json() setProfile(updated) setEditing(false) } catch (err) { console.error('Failed to save profile:', err) } setSaving(false) } const handleChange = (field, value) => { setForm(prev => ({ ...prev, [field]: value })) } if (loading) { return (
Laddar profil...
Inga mätningar registrerade
)}Inga styrkerekord registrerade
)}