/* ========================================================================== ÜBUNGEN: öffentlicher, lokaler ExerciseDB-Katalog. Die eigentliche Katalogansicht wird mit der Auswahl im Split geteilt, damit Suche, Filter und Karten dieselbe Sprache und dieselben Designregeln haben. ========================================================================== */ function UebungenPage() { const [daten, setDaten] = useState(null); const [fehler, setFehler] = useState(""); useEffect(() => { let aktiv = true; BB.get("/uebungen") .then((d) => { if (aktiv) { setDaten(d); setFehler(""); } }) .catch((err) => { if (aktiv) setFehler(err.message || BB.t("Das hat nicht geklappt.")); }); return () => { aktiv = false; }; }, []); const labelFuer = useCallback((id) => { const muskel = (daten && daten.muskeln || []).find((item) => item.id === id); return muskel ? BB.t(muskel.label) : id; }, [daten]); return (
{BB.t("Durchsuche Übungen nach Körperpartie und Gerät. Die Angaben stammen aus dem ExerciseDB-Katalog.")}
{fehler}