import { useState, useEffect } from 'react'; import axios from 'axios'; import { useAuth } from '../context/AuthContext'; import PlanTimeline from '../components/plans/PlanTimeline'; const Plans = () => { const { apiKey } = useAuth(); const [plans, setPlans] = useState([]); const [selectedPlan, setSelectedPlan] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); useEffect(() => { const fetchPlans = async () => { try { const response = await axios.get('/api/plans', { headers: { 'X-API-Key': apiKey } }); setPlans(response.data); if (response.data.length > 0) { setSelectedPlan(response.data[0].id); } } catch (err) { setError('Failed to load training plans'); } finally { setLoading(false); } }; fetchPlans(); }, [apiKey]); if (loading) return
Loading plans...
; if (error) return
{error}
; return (

Training Plans

{plans.map(plan => (
setSelectedPlan(plan.id)} className={`p-4 bg-white rounded-lg shadow-md cursor-pointer ${ selectedPlan === plan.id ? 'ring-2 ring-blue-500' : '' }`} >

Plan v{plan.version}

Created {new Date(plan.created_at).toLocaleDateString()}

))}
{selectedPlan && }
); }; export default Plans;