diff --git a/src/app/(stats)/player/[ign]/_stats/build-battle/build-battle.tsx b/src/app/(stats)/player/[ign]/_stats/build-battle/build-battle.tsx index 8ac5b16..febd4da 100644 --- a/src/app/(stats)/player/[ign]/_stats/build-battle/build-battle.tsx +++ b/src/app/(stats)/player/[ign]/_stats/build-battle/build-battle.tsx @@ -5,6 +5,7 @@ import { formatNumber } from "@/lib/formatters" import { getBuildBattleRank } from "@/lib/hypixel/build-battle/general" import { NonNullStats } from "@/lib/schema/player" import CollapsedStats from "../../_components/CollapsedStats" +import BuildBattleTitleProgress from "./progress" import BuildBattleGeneralStats from "./stats" export default function BuildBattleStats({ stats }: { stats: NonNullStats["BuildBattle"] }) { @@ -34,6 +35,8 @@ export default function BuildBattleStats({ stats }: { stats: NonNullStats["Build + + diff --git a/src/app/(stats)/player/[ign]/_stats/build-battle/progress.tsx b/src/app/(stats)/player/[ign]/_stats/build-battle/progress.tsx new file mode 100644 index 0000000..7d5c8cf --- /dev/null +++ b/src/app/(stats)/player/[ign]/_stats/build-battle/progress.tsx @@ -0,0 +1,25 @@ +import { getBuildBattleRank, getNextBuildBattleRank } from "@/lib/hypixel/build-battle/general" +import { getProgress } from "@/lib/hypixel/general" +import { cn } from "@/lib/utils" +import GenericProgress from "../../_components/GenericProgress" + +export default function BuildBattleTitleProgress({ score }: { score: number }) { + const current = getBuildBattleRank(score) + const next = getNextBuildBattleRank(score) + + const percent = getProgress(0, score, next !== null ? next.value : 0) + + return ( +
+ +

+ {next !== null ? next.name : "Already max rank"} +

+
+ ) +} diff --git a/src/lib/hypixel/build-battle/general.ts b/src/lib/hypixel/build-battle/general.ts index 930a85d..b1c0be2 100644 --- a/src/lib/hypixel/build-battle/general.ts +++ b/src/lib/hypixel/build-battle/general.ts @@ -6,3 +6,11 @@ export function getBuildBattleRank(score: number) { } return STARS[0] } + +export function getNextBuildBattleRank(score: number) { + const current = getBuildBattleRank(score) + + const next = STARS.indexOf(current) + 1 + + return next > STARS.length - 1 ? null : STARS[next] +}