import React, { useState, useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { useAuth } from '../context/AuthContext' import api from '../utils/api' function Dashboard() { const [version, setVersion] = useState(null) const [profile, setProfile] = useState(null) const [loading, setLoading] = useState(true) const { logout } = useAuth() const navigate = useNavigate() useEffect(() => { loadData() }, []) const loadData = async () => { try { const [versionData, profileData] = await Promise.all([ api.getVersion(), api.getCurrentProfile() ]) setVersion(versionData) setProfile(profileData) } catch (err) { console.error('Failed to load data:', err) } finally { setLoading(false) } } const handleLogout = async () => { try { await api.logout() } catch (err) { console.error('Logout error:', err) } finally { localStorage.removeItem('authToken') logout() navigate('/login') } } if (loading) { return (

Laden...

) } return (
{/* Header */}

🥋 Shinkan Jinkendo

Willkommen, {profile?.name || profile?.email}

{/* Main Content */}
{/* Welcome Card */}

Dashboard

Trainer- und Vereinsplattform für Kampfsport-Trainingsplanung

{/* Status Grid */}

✅ Fertig

  • Backend-Basis
  • Datenbank-Schema
  • Auth-System
  • Login & Registrierung

🚧 In Arbeit

  • Übungsverwaltung
  • Trainingsplanung
  • Kataloge (Skills, Methods)

📋 Geplant

  • MediaWiki-Import
  • Trainingsprogramme
  • Admin-Panel
{/* System Info */} {version && (

System-Information

Version: {version.app_version} Build: {version.build_date} Umgebung: {version.environment} DB Schema: {version.db_schema_version} Dein Tier: {profile?.tier || 'free'} Rolle: {profile?.role || 'user'}
)}
) } export default Dashboard