import { useState, useEffect } from 'react' import { api } from '../utils/api' export default function TrainerContextsPage() { const [contexts, setContexts] = useState([]) const [focusAreas, setFocusAreas] = useState([]) const [styleDirections, setStyleDirections] = useState([]) const [trainingTypes, setTrainingTypes] = useState([]) const [loading, setLoading] = useState(false) const [error, setError] = useState('') // Edit/Create state const [editingContext, setEditingContext] = useState(null) const [newContext, setNewContext] = useState({ name: '', focus_area_id: null, style_direction_id: null, training_type_id: null, is_style_independent: false, description: '', is_active: true }) useEffect(() => { loadData() }, []) async function loadData() { setLoading(true) setError('') try { const [ctx, fa, sd, tt] = await Promise.all([ api.listTrainerContexts(), api.listFocusAreas(), api.listStyleDirections(), api.listTrainingTypes() ]) setContexts(ctx) setFocusAreas(fa) setStyleDirections(sd) setTrainingTypes(tt) } catch (e) { setError(e.message) } finally { setLoading(false) } } async function createContext() { if (!newContext.name) { setError('Name ist Pflichtfeld') return } try { await api.createTrainerContext(newContext) setNewContext({ name: '', focus_area_id: null, style_direction_id: null, training_type_id: null, is_style_independent: false, description: '', is_active: true }) loadData() } catch (e) { setError(e.message) } } async function updateContext(id, data) { try { await api.updateTrainerContext(id, data) setEditingContext(null) loadData() } catch (e) { setError(e.message) } } async function deleteContext(id) { if (!confirm('Trainer-Kontext wirklich löschen?')) return try { await api.deleteTrainerContext(id) loadData() } catch (e) { setError(e.message) } } // Filter style directions by selected focus area function getFilteredStyleDirections(focusAreaId) { if (!focusAreaId) return [] return styleDirections.filter(sd => sd.focus_area_id === parseInt(focusAreaId)) } return (

Meine Trainer-Bereiche

Definiere deine Tätigkeitsbereiche für fokussierte Ansichten und Filter.

{error && (
{error}
)} {/* Create New Context */}

Neuer Trainer-Bereich

setNewContext({ ...newContext, name: e.target.value })} placeholder="z.B. Karate Goju-Ryu Breitensport" />
{newContext.focus_area_id && (
)}