import { useState, useEffect } from 'react' import { useUser } from '../context/UserContext' import { getUsers } from '../api' export default function UserManagement({ onClose }) { const { token } = useUser() const [users, setUsers] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState('') useEffect(() => { const fetchUsers = async () => { try { const data = await getUsers(token) setUsers(data) setError('') } catch (err) { setError('Fehler beim Laden der Benutzer') } finally { setLoading(false) } } fetchUsers() }, [token]) const roleLabels = { user: 'Viewer', moderator: 'Operator', superadmin: 'Admin' } const roleColors = { user: 'text-neutral-400', moderator: 'text-blue-400', superadmin: 'text-yellow-400' } const getAvatarUrl = (user) => { if (!user.discord_id || !user.avatar) return null return `https://cdn.discordapp.com/avatars/${user.discord_id}/${user.avatar}.png?size=64` } return (
e.stopPropagation()}>

Benutzerliste

{error && (
{error}
)}

Benutzer, die sich über Discord angemeldet haben. Rollen werden durch Discord-Rollen bestimmt.

{loading ? (
Laden...
) : users.length === 0 ? (
Noch keine Benutzer angemeldet
) : (
{users.map((user) => (
{getAvatarUrl(user) ? ( ) : (
{user.username?.charAt(0)?.toUpperCase()}
)}
{user.username}
{user.discord_id}
{roleLabels[user.role]}
))}
)}
) }