import React, { useEffect, useState } from 'react'; import { useParams } from 'react-router-dom'; import { getUserFromToken } from '../components/utils/jwt'; // Importiere die Funktion zum Decodieren des Tokens import {fetchPlayer} from './api'; // Importiere die Funktion zum Abrufen des Spielers import { User } from '../components/interfaces/users'; const ViewEditPlayer = () => { const { id } = useParams<{ id: string }>(); const token = localStorage.getItem('token'); const currentUser = token ? getUserFromToken(token) : null; const isAdmin = currentUser?.role?.includes('admin'); const [player, setPlayer] = useState(null); const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [role, setRole] = useState(''); const [message, setMessage] = useState(''); useEffect(() => { const fetchData = async () => { if (!token || !id) { setMessage('Token oder Spieler-ID fehlt.'); return; } try { const data = await fetchPlayer(token, id); console.log("Geladener Spieler:", data); setPlayer(data); setName(data.Username); setEmail(data.Email); setRole(data.Roles); } catch (error) { setMessage('Spieler konnte nicht geladen werden.'); } }; fetchData(); }, [id, token]); const handleSave = async () => { const res = await fetch(`/api/players/${id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}`, }, body: JSON.stringify({ name, email, role }), }); if (res.ok) { setMessage('Spieler wurde aktualisiert.'); } else { setMessage('Fehler beim Speichern.'); } }; if (!player) return

Lade Spieler...

; return (

Spielerprofil

{isAdmin ? ( setName(e.target.value)} /> ) : (

{player.Username}

)}
{isAdmin ? ( setEmail(e.target.value)} /> ) : (

{player.Email}

)}
{isAdmin ? ( ) : (

{player.Role}

)}
{isAdmin && ( )} {message && (

{message}

)}
); }; export default ViewEditPlayer;