From fa90bc05a8cb1bc9e2f75bb0e8b3ea50f6cf1480 Mon Sep 17 00:00:00 2001 From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com> Date: Tue, 24 Jun 2025 01:12:08 -0700 Subject: [PATCH] fixed type exxors --- apps/hub/app/(app)/admin/penalty/columns.tsx | 96 ++++++++++++++++++ apps/hub/app/(app)/admin/penalty/page.tsx | 97 +------------------ .../(app)/admin/report/_components/form.tsx | 2 +- .../admin/user/[id]/_components/forms.tsx | 2 +- 4 files changed, 99 insertions(+), 98 deletions(-) create mode 100644 apps/hub/app/(app)/admin/penalty/columns.tsx diff --git a/apps/hub/app/(app)/admin/penalty/columns.tsx b/apps/hub/app/(app)/admin/penalty/columns.tsx new file mode 100644 index 00000000..837f84a8 --- /dev/null +++ b/apps/hub/app/(app)/admin/penalty/columns.tsx @@ -0,0 +1,96 @@ +"use client"; +import { LockKeyhole, RedoDot, Shield, Timer, TriangleAlert } from "lucide-react"; +import Link from "next/link"; +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"; +import { cn } from "../../../../helper/cn"; +import { HobbyKnifeIcon } from "@radix-ui/react-icons"; + +export const penaltyColumns: ColumnDef[] = [ + { + accessorKey: "type", + header: "Typ", + + cell: ({ row }) => { + switch (row.getValue("type") as PenaltyType) { + case "KICK": + return ( +
+ + Kick {row.original.suspended && "(ausgesetzt)"} +
+ ); + case "TIME_BAN": { + const length = formatDistance( + new Date(row.original.timestamp), + new Date(row.original.until || Date.now()), + { locale: de }, + ); + return ( +
+ + Zeit Sperre ({length}) {row.original.suspended && "(ausgesetzt)"} +
+ ); + } + + case "PERMISSIONS_REVOCED": + return ( +
+ Rechte entzogen {row.original.suspended && "(ausgesetzt)"} +
+ ); + case "BAN": + return ( +
+ Bann {row.original.suspended && "(ausgesetzt)"} +
+ ); + } + }, + }, + { + 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; + return ( +
+ + + + {report && ( + + + + )} +
+ ); + }, + }, +]; diff --git a/apps/hub/app/(app)/admin/penalty/page.tsx b/apps/hub/app/(app)/admin/penalty/page.tsx index 6ec17182..2ad248b6 100644 --- a/apps/hub/app/(app)/admin/penalty/page.tsx +++ b/apps/hub/app/(app)/admin/penalty/page.tsx @@ -1,100 +1,5 @@ -"use client"; -import { LockKeyhole, RedoDot, Shield, Timer, TriangleAlert } from "lucide-react"; -import Link from "next/link"; +import { penaltyColumns } from "(app)/admin/penalty/columns"; 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"; -import { cn } from "../../../../helper/cn"; -import { HobbyKnifeIcon } from "@radix-ui/react-icons"; - -export const penaltyColumns: ColumnDef[] = [ - { - accessorKey: "type", - header: "Typ", - - cell: ({ row }) => { - switch (row.getValue("type") as PenaltyType) { - case "KICK": - return ( -
- - Kick {row.original.suspended && "(ausgesetzt)"} -
- ); - case "TIME_BAN": { - const length = formatDistance( - new Date(row.original.timestamp), - new Date(row.original.until || Date.now()), - { locale: de }, - ); - return ( -
- - Zeit Sperre ({length}) {row.original.suspended && "(ausgesetzt)"} -
- ); - } - - case "PERMISSIONS_REVOCED": - return ( -
- Rechte entzogen {row.original.suspended && "(ausgesetzt)"} -
- ); - case "BAN": - return ( -
- Bann {row.original.suspended && "(ausgesetzt)"} -
- ); - } - }, - }, - { - 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; - return ( -
- - - - {report && ( - - - - )} -
- ); - }, - }, -]; export default function ReportPage() { return ( diff --git a/apps/hub/app/(app)/admin/report/_components/form.tsx b/apps/hub/app/(app)/admin/report/_components/form.tsx index 705a6a45..7162ccc7 100644 --- a/apps/hub/app/(app)/admin/report/_components/form.tsx +++ b/apps/hub/app/(app)/admin/report/_components/form.tsx @@ -1,5 +1,5 @@ "use client"; -import { penaltyColumns as penaltyColumns } from "(app)/admin/penalty/page"; +import { penaltyColumns as penaltyColumns } from "(app)/admin/penalty/columns"; import { editReport } from "(app)/admin/report/actions"; import { zodResolver } from "@hookform/resolvers/zod"; import { Report as IReport, User } from "@repo/db"; diff --git a/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx b/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx index 0b8eb526..8ccd11c8 100644 --- a/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx +++ b/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx @@ -48,7 +48,7 @@ import { ColumnDef } from "@tanstack/react-table"; import { Error } from "_components/Error"; import { useSession } from "next-auth/react"; import { setStandardName } from "../../../../../../helper/discord"; -import { penaltyColumns } from "(app)/admin/penalty/page"; +import { penaltyColumns } from "(app)/admin/penalty/columns"; import { PenaltyDropdown } from "(app)/admin/user/[id]/_components/AddPenaltyDropdown"; import { addPenalty } from "(app)/admin/penalty/actions";