highlight correct player on leaderboard scores and make player name clickable on a leaderboard score
Some checks failed
Deploy Website / docker (ubuntu-latest) (push) Has been cancelled
Some checks failed
Deploy Website / docker (ubuntu-latest) (push) Has been cancelled
This commit is contained in:
@ -4,8 +4,14 @@ import { ScoreStatsToken } from "@ssr/common/types/token/beatleader/score-stats/
|
||||
import ScoreSaberLeaderboard from "@ssr/common/leaderboard/impl/scoresaber-leaderboard";
|
||||
import LeaderboardScoresResponse from "@ssr/common/response/leaderboard-scores-response";
|
||||
import { ScoreSaberScore } from "@ssr/common/model/score/impl/scoresaber-score";
|
||||
import ScoreSaberPlayer from "@ssr/common/player/impl/scoresaber-player";
|
||||
|
||||
type ScoreOverviewProps = {
|
||||
/**
|
||||
* The player to highlight
|
||||
*/
|
||||
highlightedPlayer?: ScoreSaberPlayer;
|
||||
|
||||
/**
|
||||
* The initial page to show
|
||||
*/
|
||||
@ -27,7 +33,7 @@ type ScoreOverviewProps = {
|
||||
scores?: LeaderboardScoresResponse<ScoreSaberScore, ScoreSaberLeaderboard>;
|
||||
};
|
||||
|
||||
export function ScoreOverview({ scoreStats, initialPage, leaderboard, scores }: ScoreOverviewProps) {
|
||||
export function ScoreOverview({ highlightedPlayer, scoreStats, initialPage, leaderboard, scores }: ScoreOverviewProps) {
|
||||
return (
|
||||
<>
|
||||
{scoreStats && (
|
||||
@ -40,6 +46,7 @@ export function ScoreOverview({ scoreStats, initialPage, leaderboard, scores }:
|
||||
initialPage={initialPage}
|
||||
initialScores={scores}
|
||||
leaderboard={leaderboard}
|
||||
highlightedPlayer={highlightedPlayer}
|
||||
disableUrlChanging
|
||||
/>
|
||||
</>
|
||||
|
@ -26,8 +26,11 @@ import ScoreSaberLeaderboard from "@ssr/common/leaderboard/impl/scoresaber-leade
|
||||
import { BeatSaverMap } from "@ssr/common/model/beatsaver/map";
|
||||
import LeaderboardScoresResponse from "@ssr/common/response/leaderboard-scores-response";
|
||||
import { ScoreStatsToken } from "@ssr/common/types/token/beatleader/score-stats/score-stats";
|
||||
import ScoreSaberPlayerToken from "@ssr/common/types/token/scoresaber/score-saber-player-token";
|
||||
import ScoreSaberPlayer from "@ssr/common/player/impl/scoresaber-player";
|
||||
|
||||
type Props = {
|
||||
highlightedPlayer?: ScoreSaberPlayer;
|
||||
score: ScoreSaberScore;
|
||||
leaderboard: ScoreSaberLeaderboard;
|
||||
beatSaverMap?: BeatSaverMap;
|
||||
@ -53,7 +56,7 @@ const modes: Mode[] = [
|
||||
{ name: "Score History", icon: <TrendingUpIcon className="w-4 h-4" /> },
|
||||
];
|
||||
|
||||
export default function Score({ leaderboard, beatSaverMap, score, settings }: Props) {
|
||||
export default function Score({ leaderboard, beatSaverMap, score, settings, highlightedPlayer }: Props) {
|
||||
const [baseScore, setBaseScore] = useState(score.score);
|
||||
const [isLeaderboardExpanded, setIsLeaderboardExpanded] = useState(false);
|
||||
const [loading, setLoading] = useState(false);
|
||||
@ -176,6 +179,7 @@ export default function Score({ leaderboard, beatSaverMap, score, settings }: Pr
|
||||
leaderboard={leaderboard}
|
||||
initialPage={scoresPage}
|
||||
scoreStats={dropdownData.scoreStats}
|
||||
highlightedPlayer={highlightedPlayer}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
Reference in New Issue
Block a user