ADD: added function to update db scheme automaticly

This commit is contained in:
hwinkel
2025-11-18 22:23:08 +01:00
parent ef396af480
commit 3818fbf460
15 changed files with 876 additions and 186 deletions

View File

@@ -1,16 +1,16 @@
import React, { useEffect, useState } from 'react';
import { fetchPlayers,createPlayer,deletePlayer,updatePlayer } from './api';
import { Navigate, useNavigate } from 'react-router-dom';
import { User, UserRole } from '../components/interfaces/users';
interface Player {
id: string;
name: string;
email: string;
}
// interface Player {
// id: string;
// name: string;
// email: string;
// }
export default function PlayerManagement() {
const [players, setPlayers] = useState<Player[]>([]);
const [players, setPlayers] = useState<User[]>([]);
const [name, setName] = useState("");
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
@@ -39,17 +39,19 @@ export default function PlayerManagement() {
if (editingId !== null) {
setPlayers(players.map(p =>
p.id === editingId ? { ...p, name, email } : p
p.UUID === editingId ? { ...p, name, email } : p
));
if (token) {
updatePlayer(editingId, { name, email }, token);
}
setEditingId(null);
} else {
const newPlayer: Player = {
id: "",
name,
email,
const newPlayer: User = {
UUID: "",
Username:"",
Email: "",
Roles: [UserRole.Player],
IsActive: true,
};
if (token) {
@@ -68,7 +70,7 @@ export default function PlayerManagement() {
};
const handleDelete = (id: string) => {
setPlayers(players.filter(p => p.id !== id));
setPlayers(players.filter(p => p.UUID !== id));
if (token) {
deletePlayer(id, token);
}
@@ -124,19 +126,19 @@ export default function PlayerManagement() {
</thead>
<tbody>
{players.map(player => (
<tr key={player.id}>
<td className="border px-4 py-2">{player.name}</td>
<td className="border px-4 py-2">{player.email}</td>
<tr key={player.UUID}>
<td className="border px-4 py-2">{player.Username}</td>
<td className="border px-4 py-2">{player.Email}</td>
<td className="border px-4 py-2 space-x-2">
<button
key={player.id}
onClick={handleViewEdit(player.id)}
key={player.UUID}
onClick={handleViewEdit(player.UUID)}
className="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700"
>
Bearbeiten
</button>
<button
onClick={() => handleDelete(player.id)}
onClick={() => handleDelete(player.UUID)}
className="bg-red-500 text-white px-2 py-1 rounded"
>
Löschen