@@ -313,6 +209,104 @@ export class LeaderboardClanTable extends LitElement {
+
+
+ |
+ ${translateText("leaderboard_modal.rank")}
+ |
+
+ ${translateText("leaderboard_modal.clan")}
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
${sorted.map((clan, index) => {
const displayRank = index + 1;
@@ -369,14 +363,14 @@ export class LeaderboardClanTable extends LitElement {
- ${clan.weightedWins.toLocaleString("fullwide", {
+ ${clan.weightedWins.toLocaleString(undefined, {
maximumFractionDigits: 1,
})}
|
- ${clan.weightedLosses.toLocaleString("fullwide", {
+ ${clan.weightedLosses.toLocaleString(undefined, {
maximumFractionDigits: 1,
})}
|
@@ -387,7 +381,7 @@ export class LeaderboardClanTable extends LitElement {
1
? "text-green-400"
: "text-red-400"}"
- >${clan.weightedWLRatio.toLocaleString("fullwide", {
+ >${clan.weightedWLRatio.toLocaleString(undefined, {
maximumFractionDigits: 2,
})}
diff --git a/src/client/components/leaderboard/LeaderboardPlayerList.ts b/src/client/components/leaderboard/LeaderboardPlayerList.ts
index 5763b0f9b..8322c0bc5 100644
--- a/src/client/components/leaderboard/LeaderboardPlayerList.ts
+++ b/src/client/components/leaderboard/LeaderboardPlayerList.ts
@@ -1,4 +1,4 @@
-import { html, LitElement } from "lit";
+import { html, LitElement, nothing } from "lit";
import { customElement, query, state } from "lit/decorators.js";
import { PlayerLeaderboardEntry } from "../../../core/ApiSchemas";
import { RankedType } from "../../../core/game/Game";
@@ -210,7 +210,6 @@ export class LeaderboardPlayerList extends LitElement {
private renderPlayerRow(player: PlayerLeaderboardEntry) {
const isCurrentUser = this.currentUserEntry?.playerId === player.playerId;
const displayRank = player.rank;
- const winRate = player.games > 0 ? player.wins / player.games : 0;
const rankColor =
{
@@ -258,23 +257,17 @@ export class LeaderboardPlayerList extends LitElement {
${player.elo}
- ${translateText("leaderboard_modal.elo")}
|
${player.games}
- ${translateText("leaderboard_modal.games")}
|
= 0.5
? "text-green-400"
: "text-red-400"}"
- >${(winRate * 100).toFixed(1)}%${(player.winRate * 100).toFixed(1)}%
-
-
-
-
-
-
-
-
-
-
-
- |
- ${translateText("leaderboard_modal.rank")}
- |
-
- ${translateText("leaderboard_modal.player")}
- |
-
- ${translateText("leaderboard_modal.elo")}
- |
-
- ${translateText("leaderboard_modal.games")}
- |
-
- ${translateText("leaderboard_modal.win_loss_ratio")}
- |
-
-
-
+
+
+
+ |
+ ${translateText("leaderboard_modal.rank")}
+ |
+
+ ${translateText("leaderboard_modal.player")}
+ |
+
+ ${translateText("leaderboard_modal.elo")}
+ |
+
+ ${translateText("leaderboard_modal.games")}
+ |
+
+ ${translateText("leaderboard_modal.win_loss_ratio")}
+ |
+
+
${this.playerData.map((player) => this.renderPlayerRow(player))}
@@ -436,7 +418,7 @@ export class LeaderboardPlayerList extends LitElement {
.showStickyUser
? "opacity-100 translate-y-0"
: "opacity-0 translate-y-3 pointer-events-none"}"
- aria-hidden=${this.showStickyUser ? "false" : "true"}
+ aria-hidden=${this.showStickyUser ? nothing : "true"}
>
${this.currentUserEntry.username}${this.currentUserEntry.clanTag
+ ? this.currentUserEntry.username.replace(
+ /^\[.*?\]\s*/,
+ "",
+ )
+ : this.currentUserEntry.username}
|