fix score leaderboard staying open when switching sort/page
Some checks failed
Deploy Backend / deploy (push) Failing after 1m27s
Deploy Website / deploy (push) Failing after 1m32s

This commit is contained in:
Lee
2024-10-17 03:08:27 +01:00
parent 42d133bbbb
commit c64f046df3
9 changed files with 34 additions and 10 deletions

View File

@ -7,7 +7,7 @@ import { useToast } from "@/hooks/use-toast";
import Tooltip from "../tooltip";
import { Button } from "../ui/button";
import { revalidatePath } from "next/cache";
import { setCookieValue } from "@/common/cookie-utils";
import { setCookieValue } from "@ssr/common/utils/cookie-utils";
type Props = {
/**

View File

@ -16,7 +16,7 @@ import ScoreSaberPlayer from "@ssr/common/types/player/impl/scoresaber-player";
import ScoreSaberPlayerScoresPageToken from "@ssr/common/types/token/scoresaber/score-saber-player-scores-page-token";
import { ScoreSort } from "@ssr/common/types/score/score-sort";
import { scoresaberService } from "@ssr/common/service/impl/scoresaber";
import { setCookieValue } from "@/common/cookie-utils";
import { setCookieValue } from "@ssr/common/utils/cookie-utils";
type Props = {
initialScoreData?: ScoreSaberPlayerScoresPageToken;

View File

@ -48,16 +48,29 @@ export default function Score({ player, playerScore, settings }: Props) {
setBeatSaverMap(beatSaverMapData);
}, [leaderboard.songHash, settings?.noScoreButtons]);
/**
* Set the base score
*/
useEffect(() => {
if (playerScore?.score?.baseScore) {
setBaseScore(playerScore.score.baseScore);
}
}, [playerScore]);
/**
* Fetch the beatSaver data on page load
*/
useEffect(() => {
fetchBeatSaverData();
}, [fetchBeatSaverData]);
/**
* Close the leaderboard when the score changes
*/
useEffect(() => {
setIsLeaderboardExpanded(false);
}, [score]);
const accuracy = (baseScore / leaderboard.maxScore) * 100;
const pp = baseScore === score.baseScore ? score.pp : scoresaberService.getPp(leaderboard.stars, accuracy);