Added cc table

This commit is contained in:
2025-09-08 20:51:17 +02:00
parent a926b74d65
commit f5a5a989d3
4 changed files with 95 additions and 1 deletions

View File

@@ -7,6 +7,7 @@ import { devide } from "@/lib/hypixel/general"
import { NonNullStats } from "@/lib/schema/player"
import CollapsedStats from "../../_components/CollapsedStats"
import CopsAndCrimsGeneralStats from "./stats"
import CopsAndCrimsStatTable from "./table"
export default function CopsAndCrimsStats({ stats }: { stats: NonNullStats["CopsAndCrims"] }) {
if (!stats) return null
@@ -52,6 +53,8 @@ export default function CopsAndCrimsStats({ stats }: { stats: NonNullStats["Cops
<Separator className="my-4" />
<CopsAndCrimsGeneralStats stats={stats} wins={wins} kills={kills} assits={assists} deaths={deaths} />
<Separator className="my-4" />
<CopsAndCrimsStatTable stats={stats} />
<Separator className="my-4" />
</AccordionContent>
</CardContent>
</Card>

View File

@@ -0,0 +1,57 @@
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import { formatNumber } from "@/lib/formatters"
import { getCopsAndCrimsModeName, getCopsAndCrimsModeStats } from "@/lib/hypixel/copsandcrims/general"
import { NonNullStats } from "@/lib/schema/player"
export default function CopsAndCrimsStatTable({ stats }: { stats: NonNullable<NonNullStats["CopsAndCrims"]> }) {
return (
<Table>
<CopsAndCrimsTableHeader />
<TableBody>
<CopsAndCrimsTableStat modeId="regular" stats={stats} />
<CopsAndCrimsTableStat modeId="deathmatch" stats={stats} />
<CopsAndCrimsTableStat modeId="gungame" stats={stats} />
</TableBody>
</Table>
)
}
function CopsAndCrimsTableHeader() {
const headerElements = [
"Mode",
"Kills",
"Deaths",
"KD",
"Cop Kills",
"Criminal Kills",
"Wins"
]
return (
<TableHeader>
<TableRow>
{headerElements.map((v, i) => {
return <TableHead key={i} className="font-bold">{v}</TableHead>
})}
</TableRow>
</TableHeader>
)
}
function CopsAndCrimsTableStat(
{ modeId, stats }: {
modeId: Exclude<Parameters<typeof getCopsAndCrimsModeStats>[0], ""> | "regular"
stats: NonNullable<NonNullStats["CopsAndCrims"]>
}
) {
const modeStats = getCopsAndCrimsModeStats(modeId === "regular" ? "" : modeId, stats)
const name = getCopsAndCrimsModeName(modeId === "regular" ? "" : modeId)
return (
<TableRow>
<TableCell>{name}</TableCell>
{modeStats.map((v, i) => {
return <TableCell key={i}>{formatNumber(v)}</TableCell>
})}
</TableRow>
)
}