import { Users } from "lucide-react"; import { createTeam, deleteTeam } from "@/actions/admin-teams"; import { StatusCard } from "@/components/admin/dashboard"; import { prisma } from "@/lib/prisma"; export const dynamic = "force-dynamic"; type TeamRow = { id: bigint; rankName: string; badge: string | null; jobDescription: string | null; staffColor: string; hiddenRank: boolean; }; export default async function AdminTeams() { let teams: TeamRow[] = []; try { teams = await prisma.websiteTeams.findMany({ select: { id: true, rankName: true, badge: true, jobDescription: true, staffColor: true, hiddenRank: true, }, orderBy: { id: "asc" }, }); } catch { teams = []; } const hidden = teams.filter((t) => t.hiddenRank).length; return (

Teams

Staff rank definitions shown on the public team page.

New team rank

Ranks ({teams.length})

{teams.length === 0 ? (
No teams yet.
) : (
{teams.map((t) => ( ))}
ID Rank name Badge Job description Color Visibility
{String(t.id)} {t.rankName} {t.badge ?? "—"} {t.jobDescription ?? "—"} {t.staffColor} {t.hiddenRank ? "hidden" : "visible"}
)}
); }