"use client"; import { Eye, LockKeyhole, RedoDot, Timer } from "lucide-react"; import Link from "next/link"; import { PaginatedTable } from "_components/PaginatedTable"; import { Penalty, PenaltyType, Report, User } from "@repo/db"; import { ColumnDef } from "@tanstack/react-table"; import { formatDistance } from "date-fns"; import { de } from "date-fns/locale"; export default function ReportPage() { return ( { switch (row.getValue("type") as PenaltyType) { case "KICK": return (
Kick
); case "TIME_BAN": { const length = formatDistance( new Date(row.original.timestamp), new Date(row.original.until || Date.now()), { locale: de }, ); return (
Zeit Sperre ({length})
); } case "BAN": return (
Bann
); } }, }, { accessorKey: "CreatedUser", header: "Bestraft durch", cell: ({ row }) => { const user = row.getValue("CreatedUser") as User; return `${user.firstname} ${user.lastname} (${user.publicId})`; }, }, { accessorKey: "timestamp", header: "Time", cell: ({ row }) => new Date(row.getValue("timestamp")).toLocaleString(), }, { accessorKey: "actions", header: "Actions", cell: ({ row }) => { const report = row.original.Report; if (!report[0]) return null; return ( ); }, }, ] as ColumnDef[] } /> ); }