Added mw modes table
This commit is contained in:
@@ -8,6 +8,7 @@ import { NonNullStats } from "@/lib/schema/player"
|
||||
import { cn } from "@/lib/utils"
|
||||
import CollapsedStats from "../../_components/CollapsedStats"
|
||||
import MegaWallsGeneralStats from "./stats"
|
||||
import { MegaWallsClassesTable, MegaWallsModesTable } from "./table"
|
||||
|
||||
export default function MegaWallsStats({ stats }: { stats: NonNullStats["MegaWalls"] }) {
|
||||
if (!stats) return null
|
||||
@@ -59,6 +60,10 @@ export default function MegaWallsStats({ stats }: { stats: NonNullStats["MegaWal
|
||||
<Separator className="my-4" />
|
||||
<MegaWallsGeneralStats stats={stats} />
|
||||
<Separator className="my-4" />
|
||||
<MegaWallsClassesTable stats={stats} />
|
||||
<Separator className="my-4" />
|
||||
<MegaWallsModesTable stats={stats} />
|
||||
<Separator className="my-4" />
|
||||
</AccordionContent>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
93
src/app/(stats)/player/[ign]/_stats/megawalls/table.tsx
Normal file
93
src/app/(stats)/player/[ign]/_stats/megawalls/table.tsx
Normal file
@@ -0,0 +1,93 @@
|
||||
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
|
||||
import { formatNumber } from "@/lib/formatters"
|
||||
import { getMegaWallsModeName, getMegaWallsModeStats } from "@/lib/hypixel/megawalls/general"
|
||||
import { NonNullStats } from "@/lib/schema/player"
|
||||
|
||||
export function MegaWallsModesTable({ stats }: { stats: NonNullable<NonNullStats["MegaWalls"]> }) {
|
||||
return (
|
||||
<Table>
|
||||
<MegaWallsTableHeader />
|
||||
<TableBody>
|
||||
<MegaWallsModeStat modeId="standard" stats={stats} />
|
||||
<MegaWallsModeStat modeId="face_off" stats={stats} />
|
||||
<MegaWallsModeStat modeId="gvg" stats={stats} />
|
||||
</TableBody>
|
||||
</Table>
|
||||
)
|
||||
}
|
||||
|
||||
export function MegaWallsClassesTable({ stats }: { stats: NonNullable<NonNullStats["MegaWalls"]> }) {
|
||||
return (
|
||||
<Table>
|
||||
<MegaWallsClassTableHeader />
|
||||
<TableBody>
|
||||
</TableBody>
|
||||
</Table>
|
||||
)
|
||||
}
|
||||
|
||||
function MegaWallsClassTableHeader() {
|
||||
const headerElements = [
|
||||
"Class",
|
||||
"Kills",
|
||||
"Deaths",
|
||||
"KD",
|
||||
"Kills",
|
||||
"Deaths",
|
||||
"KD",
|
||||
"Wins",
|
||||
"Losses",
|
||||
"WL",
|
||||
"Prestige",
|
||||
"Ender Chest"
|
||||
]
|
||||
|
||||
return (
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
<TableHead></TableHead>
|
||||
<TableHead colSpan={3} className="font-bold">Normal</TableHead>
|
||||
<TableHead colSpan={3} className="font-bold">Finals</TableHead>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
{headerElements.map((v, i) => <TableHead key={i} className="font-bold">{v}</TableHead>)}
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
)
|
||||
}
|
||||
|
||||
function MegaWallsTableHeader() {
|
||||
const headerElements = [
|
||||
"Mode",
|
||||
"Kills",
|
||||
"Deaths",
|
||||
"KD",
|
||||
"Wins",
|
||||
"Losses",
|
||||
"WL"
|
||||
]
|
||||
|
||||
return (
|
||||
<TableHeader>
|
||||
<TableRow>
|
||||
{headerElements.map((v, i) => <TableHead key={i} className="font-bold">{v}</TableHead>)}
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
)
|
||||
}
|
||||
|
||||
function MegaWallsModeStat(
|
||||
{ modeId, stats }: { modeId: Parameters<typeof getMegaWallsModeStats>[0], stats: NonNullable<NonNullStats["MegaWalls"]> }
|
||||
) {
|
||||
const modeName = getMegaWallsModeName(modeId)
|
||||
const modeStat = getMegaWallsModeStats(modeId, stats)
|
||||
|
||||
return (
|
||||
<TableRow>
|
||||
<TableCell>{modeName}</TableCell>
|
||||
{modeStat.map((s, i) => {
|
||||
return <TableCell key={i}>{formatNumber(s)}</TableCell>
|
||||
})}
|
||||
</TableRow>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user