import { useState, useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { getServers } from '../api' import { useUser } from '../context/UserContext' import ServerCard from '../components/ServerCard' import UserManagement from '../components/UserManagement' import ActivityLog from '../components/ActivityLog' export default function Dashboard({ onLogout }) { const navigate = useNavigate() const { user, token, loading: userLoading, isSuperadmin, role, avatarUrl } = useUser() const [servers, setServers] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState('') const [showUserMgmt, setShowUserMgmt] = useState(false) const [showActivityLog, setShowActivityLog] = useState(false) const fetchServers = async () => { try { const data = await getServers(token) setServers(data) setError('') } catch (err) { if (err.message.includes('401') || err.message.includes('403')) { onLogout() } else { setError('Verbindung zum Server fehlgeschlagen') } } finally { setLoading(false) } } useEffect(() => { if (!userLoading && token) { fetchServers() const interval = setInterval(fetchServers, 10000) return () => clearInterval(interval) } }, [token, userLoading]) const roleLabels = { user: 'Viewer', moderator: 'Operator', superadmin: 'Admin' } if (userLoading) { return (