From 8960806f9b45939328b5ce452bdc1dc667837009 Mon Sep 17 00:00:00 2001 From: Marc Wieland Date: Fri, 25 Apr 2025 17:03:42 +0200 Subject: [PATCH] Teamlist --- src/admin/AdminDashboard.tsx | 9 ++++++ src/admin/TeamList.tsx | 62 ++++++++++++++++++++++++++++++++++++ src/main.tsx | 3 ++ 3 files changed, 74 insertions(+) create mode 100644 src/admin/TeamList.tsx diff --git a/src/admin/AdminDashboard.tsx b/src/admin/AdminDashboard.tsx index bd9d05237..58a97fb14 100644 --- a/src/admin/AdminDashboard.tsx +++ b/src/admin/AdminDashboard.tsx @@ -40,6 +40,15 @@ const AdminDashboard = () => { )} + + + + + Teams verwalten +

Teams und Spieler pflegen

+
+
+ ); diff --git a/src/admin/TeamList.tsx b/src/admin/TeamList.tsx new file mode 100644 index 000000000..c012788b9 --- /dev/null +++ b/src/admin/TeamList.tsx @@ -0,0 +1,62 @@ +import { useEffect, useState } from "react"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Link } from "react-router-dom"; + +const apiBase = import.meta.env.VITE_API_URL; + +type Team = { + id: number; + name: string; + player_count: number; +}; + +const TeamList = () => { + const [teams, setTeams] = useState([]); + + const fetchTeams = async () => { + try { + const res = await fetch(`${apiBase}/api/teams`); + const data = await res.json(); + setTeams(data); + } catch (err) { + console.error("Fehler beim Laden der Teams:", err); + } + }; + + useEffect(() => { + fetchTeams(); + }, []); + + return ( +
+
+

Teams verwalten

+ +
+ +
+ {teams.map((team) => ( + + + {team.name} + + +

Spieler: {team.player_count}

+ +
+
+ ))} +
+
+ ); +}; + +export default TeamList; diff --git a/src/main.tsx b/src/main.tsx index 3efebac59..b5dd0325f 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -19,6 +19,7 @@ import PrivateRoute from "./components/PrivateRoute"; import UserManagementPage from "./admin/UserManagementPage"; import UserCreatePage from "./admin/UserCreatePage"; import UserEditPage from "./admin/UserEditPage"; +import TeamList from "./admin/TeamList"; @@ -59,6 +60,8 @@ ReactDOM.createRoot(document.getElementById("root")!).render( } /> } /> } /> + } /> +