import React, { useState, useEffect } from 'react' import { Link } from 'react-router-dom' import api from '../utils/api' function ExercisesListPage() { const [exercises, setExercises] = useState([]) const [focusAreas, setFocusAreas] = useState([]) const [loading, setLoading] = useState(true) const [filters, setFilters] = useState({ focus_area: '', visibility: '', status: '', }) useEffect(() => { loadData() }, [filters]) const loadData = async () => { try { const [exercisesData, focusAreasData] = await Promise.all([ api.listExercises(filters), api.listFocusAreas(), ]) setExercises(exercisesData) setFocusAreas(focusAreasData) } catch (err) { console.error('Failed to load data:', err) alert('Fehler beim Laden: ' + err.message) } finally { setLoading(false) } } const handleDelete = async (exercise) => { if (!confirm(`Übung "${exercise.title}" wirklich löschen?`)) return try { await api.deleteExercise(exercise.id) await loadData() } catch (err) { alert('Fehler beim Löschen: ' + err.message) } } if (loading) { return (

Laden...

) } return (

Übungen

+ Neue Übung
{exercises.length === 0 ? (

Keine Übungen gefunden. Lege jetzt deine erste Übung an!

) : (
{exercises.map((exercise) => (

{exercise.title}

{exercise.focus_area || 'Ohne Fokus'} {exercise.visibility} {exercise.status}
{exercise.summary && (

{exercise.summary}

)}
Ansehen Bearbeiten
))}
)}
) } export default ExercisesListPage