import React, { useState, useEffect } from 'react' import api from '../utils/api' import { useAuth } from '../context/AuthContext' function SkillsPage() { const { user } = useAuth() const [activeTab, setActiveTab] = useState('skills') const [skills, setSkills] = useState([]) const [methods, setMethods] = useState([]) const [loading, setLoading] = useState(true) const [showModal, setShowModal] = useState(false) const [editing, setEditing] = useState(null) const [modalType, setModalType] = useState('skill') const [formData, setFormData] = useState({}) const isAdmin = user?.role === 'admin' || user?.role === 'superadmin' useEffect(() => { loadData() }, []) const loadData = async () => { try { const [skillsData, methodsData] = await Promise.all([ api.listSkills(), api.listMethods() ]) setSkills(skillsData) setMethods(methodsData) } catch (err) { console.error('Failed to load data:', err) alert('Fehler beim Laden: ' + err.message) } finally { setLoading(false) } } const handleCreate = (type) => { setEditing(null) setModalType(type) if (type === 'skill') { setFormData({ name: '', category: '', description: '', importance: 3, keywords: [], status: 'active' }) } else { setFormData({ name: '', abbreviation: '', category: '', description: '', typical_duration: '', typical_group_size: '', related_skills: [], keywords: [], status: 'active' }) } setShowModal(true) } const handleEdit = (item, type) => { setEditing(item) setModalType(type) setFormData({ ...item }) setShowModal(true) } const handleDelete = async (item, type) => { const confirmMsg = type === 'skill' ? `Fähigkeit "${item.name}" wirklich löschen?` : `Trainingsmethode "${item.name}" wirklich löschen?` if (!confirm(confirmMsg)) return try { if (type === 'skill') { await api.deleteSkill(item.id) } else { await api.deleteMethod(item.id) } await loadData() } catch (err) { alert('Fehler beim Löschen: ' + err.message) } } const handleSubmit = async (e) => { e.preventDefault() try { if (modalType === 'skill') { if (editing) { await api.updateSkill(editing.id, formData) } else { await api.createSkill(formData) } } else { if (editing) { await api.updateMethod(editing.id, formData) } else { await api.createMethod(formData) } } setShowModal(false) await loadData() } catch (err) { alert('Fehler beim Speichern: ' + err.message) } } const updateFormField = (field, value) => { setFormData(prev => ({ ...prev, [field]: value })) } const groupByCategory = (items) => { const grouped = {} items.forEach(item => { const cat = item.category || 'Ohne Kategorie' if (!grouped[cat]) grouped[cat] = [] grouped[cat].push(item) }) return grouped } if (loading) { return (
Laden...
Fähigkeiten sind Kompetenzen, die in Übungen trainiert werden.
{isAdmin && ( )}Keine Fähigkeiten gefunden
{skill.description}
)} {isAdmin && (Trainingsmethoden sind didaktische Ansätze für die Trainingsgestaltung.
{isAdmin && ( )}Keine Trainingsmethoden gefunden
{method.description}
)} {isAdmin && (