-
-
+
+
{score.fullCombo ? FC : formatNumberWithCommas(score.misses)}
{!hideXMark && !score.fullCombo && x}
-
-
- {additionalData && !!pauses && pauses > 0 && (
- <>
-
|
-
- {pauses}x Pause{pauses > 1 ? "s" : ""}
-
- }
+
+ {additionalData && previousScoreMisses && scoreImprovement && misses && isMissImprovement && (
+
-
-
{pauses && pauses}
-
+
+
(vs {previousScoreFc ? "FC" : formatNumberWithCommas(previousScoreMisses.misses)}x)
-
- >
- )}
-
- {additionalData && previousScoreMisses && scoreImprovement && misses && isMissImprovement && (
-
-
-
- {previousScoreFc ? (
-
FC
- ) : (
- formatNumberWithCommas(previousScoreMisses.misses)
- )}
-
-
-
->
-
-
- {additionalData.fullCombo ?
FC
: formatNumberWithCommas(misses.misses)}
-
-
+
+ )}
- )}
+ {/*{additionalData && !!pauses && pauses > 0 && (*/}
+ {/* <>*/}
+ {/* |
*/}
+ {/* */}
+ {/* {pauses}x Pause{pauses > 1 ? "s" : ""}*/}
+ {/* */}
+ {/* }*/}
+ {/* >*/}
+ {/* */}
+ {/*
{pauses && pauses}
*/}
+ {/*
*/}
+ {/*
*/}
+ {/* */}
+ {/* >*/}
+ {/*)}*/}
+
+ {/*{additionalData && previousScoreMisses && scoreImprovement && misses && isMissImprovement && (*/}
+ {/* */}
+ {/*
*/}
+ {/* */}
+ {/* {previousScoreFc ? (*/}
+ {/*
FC
*/}
+ {/* ) : (*/}
+ {/* formatNumberWithCommas(previousScoreMisses.misses)*/}
+ {/* )}*/}
+ {/*
*/}
+ {/* */}
+ {/*
->
*/}
+ {/*
*/}
+ {/* */}
+ {/* {additionalData.fullCombo ?
FC
: formatNumberWithCommas(misses.misses)}*/}
+ {/*
*/}
+ {/* */}
+ {/*
*/}
+ {/*)}*/}
);
}
diff --git a/projects/website/src/components/score/score-badge.tsx b/projects/website/src/components/score/score-badge.tsx
index c278f5e..7450abb 100644
--- a/projects/website/src/components/score/score-badge.tsx
+++ b/projects/website/src/components/score/score-badge.tsx
@@ -1,6 +1,6 @@
-import StatValue from "@/components/stat-value";
import { ScoreSaberScore } from "@ssr/common/model/score/impl/scoresaber-score";
import ScoreSaberLeaderboard from "@ssr/common/model/leaderboard/impl/scoresaber-leaderboard";
+import clsx from "clsx";
/**
* A badge to display in the score stats.
@@ -27,6 +27,19 @@ export function ScoreBadges({ badges, score, leaderboard }: ScoreBadgeProps) {
if (toRender === undefined) {
return
;
}
- return
;
+ return (
+
+ {toRender}
+
+ );
});
}
diff --git a/projects/website/src/components/score/score-song-info.tsx b/projects/website/src/components/score/score-song-info.tsx
index 6450700..77233e3 100644
--- a/projects/website/src/components/score/score-song-info.tsx
+++ b/projects/website/src/components/score/score-song-info.tsx
@@ -63,7 +63,7 @@ export default function ScoreSongInfo({ leaderboard, beatSaverMap }: Props) {
>
{leaderboard.songName} {leaderboard.songSubName}
-
+
{leaderboard.songAuthorName}
-
+
);
}
diff --git a/projects/website/src/components/score/score.tsx b/projects/website/src/components/score/score.tsx
index c44f00e..b1f3f84 100644
--- a/projects/website/src/components/score/score.tsx
+++ b/projects/website/src/components/score/score.tsx
@@ -120,12 +120,12 @@ export default function Score({ leaderboard, beatSaverMap, score, settings, high
};
const gridColsClass = settings?.noScoreButtons
- ? "grid-cols-[20px 1fr_1fr] lg:grid-cols-[0.5fr_4fr_300px]" // Fewer columns if no buttons
- : "grid-cols-[20px 1fr_1fr] lg:grid-cols-[0.5fr_4fr_1fr_300px]"; // Original with buttons
+ ? "grid-cols-[20px 1fr_1fr] lg:grid-cols-[0.5fr_4fr_350px]" // Fewer columns if no buttons
+ : "grid-cols-[20px 1fr_1fr] lg:grid-cols-[0.5fr_4fr_1fr_350px]"; // Original with buttons
return (
-
-
+
+
{!settings?.noScoreButtons && (
diff --git a/projects/website/src/components/stat-value.tsx b/projects/website/src/components/stat-value.tsx
index 247984a..2a2cd02 100644
--- a/projects/website/src/components/stat-value.tsx
+++ b/projects/website/src/components/stat-value.tsx
@@ -16,18 +16,24 @@ type Props = {
*/
color?: string;
+ /**
+ * The additional classes for the stat.
+ */
+ className?: string;
+
/**
* The value of the stat.
*/
value: React.ReactNode;
};
-export default function StatValue({ name, icon, color, value }: Props) {
+export default function StatValue({ name, icon, color, className, value }: Props) {
return (
setOpen(true)}
- onMouseLeave={() => setOpen(false)}
- onTouchStart={() => setOpen(!open)}
- onTouchEnd={() => setOpen(!open)}
- >
- {children}
-
+
setOpen(true)}
+ onMouseLeave={() => setOpen(false)}
+ onTouchStart={() => setOpen(!open)}
+ onTouchEnd={() => setOpen(!open)}
+ >
+ {children}
{display}