updated store
All checks were successful
deploy / deploy (push) Successful in 1m3s

This commit is contained in:
Lee 2023-10-22 08:48:32 +01:00
parent 3293f3fde3
commit a8139676b8
2 changed files with 29 additions and 8 deletions

@ -9,7 +9,9 @@ import { useSettingsStore } from "./settingsStore";
type Player = { type Player = {
id: string; id: string;
scores: ScoresaberPlayerScore[]; scores: {
scoresaber: ScoresaberPlayerScore[];
};
}; };
interface PlayerScoresStore { interface PlayerScoresStore {
@ -116,7 +118,9 @@ export const usePlayerScoresStore = create<PlayerScoresStore>()(
...players, ...players,
{ {
id: playerId, id: playerId,
scores: scores, scores: {
scoresaber: scores,
},
}, },
], ],
}); });
@ -149,7 +153,9 @@ export const usePlayerScoresStore = create<PlayerScoresStore>()(
for (const friend of friends) { for (const friend of friends) {
players.push({ players.push({
id: friend.id, id: friend.id,
scores: [], scores: {
scoresaber: [],
},
}); });
} }
@ -157,7 +163,7 @@ export const usePlayerScoresStore = create<PlayerScoresStore>()(
if (player == undefined) continue; if (player == undefined) continue;
console.log(`Updating scores for ${player.id}...`); console.log(`Updating scores for ${player.id}...`);
let oldScores = player.scores; let oldScores = player.scores.scoresaber;
// Sort the scores by date (newset to oldest), so we know when to stop searching for new scores // Sort the scores by date (newset to oldest), so we know when to stop searching for new scores
oldScores = oldScores.sort((a, b) => { oldScores = oldScores.sort((a, b) => {
@ -203,7 +209,9 @@ export const usePlayerScoresStore = create<PlayerScoresStore>()(
// Add the player // Add the player
newPlayers.push({ newPlayers.push({
id: player.id, id: player.id,
scores: oldScores, scores: {
scoresaber: oldScores,
},
}); });
if (newScoresCount > 0) { if (newScoresCount > 0) {
@ -220,6 +228,19 @@ export const usePlayerScoresStore = create<PlayerScoresStore>()(
{ {
name: "playerScores", name: "playerScores",
storage: createJSONStorage(() => localStorage), storage: createJSONStorage(() => localStorage),
version: 1,
migrate: (state: any, version: number) => {
if (version == 1) {
console.log("Migrating player scores...");
const players = state.players;
for (const player of players) {
player.scores = player.scores.scoresaber;
}
return state;
}
},
}, },
), ),
); );

@ -118,7 +118,7 @@ export function calcPpBoundary(playerId: string, expectedPp = 1) {
const rankedScores = usePlayerScoresStore const rankedScores = usePlayerScoresStore
.getState() .getState()
.players.find((p) => p.id === playerId) .players.find((p) => p.id === playerId)
?.scores?.filter((s) => s.score.pp !== undefined); ?.scores?.scoresaber.filter((s) => s.score.pp !== undefined);
if (!rankedScores) return null; if (!rankedScores) return null;
const rankedScorePps = rankedScores const rankedScorePps = rankedScores
@ -159,7 +159,7 @@ export function getHighestPpPlay(playerId: string) {
const rankedScores = usePlayerScoresStore const rankedScores = usePlayerScoresStore
.getState() .getState()
.players.find((p) => p.id === playerId) .players.find((p) => p.id === playerId)
?.scores?.filter((s) => s.score.pp !== undefined); ?.scores?.scoresaber.filter((s) => s.score.pp !== undefined);
if (!rankedScores) return null; if (!rankedScores) return null;
const rankedScorePps = rankedScores const rankedScorePps = rankedScores
@ -179,7 +179,7 @@ export function getAveragePp(playerId: string, limit: number = 20) {
const rankedScores = usePlayerScoresStore const rankedScores = usePlayerScoresStore
.getState() .getState()
.players.find((p) => p.id === playerId) .players.find((p) => p.id === playerId)
?.scores?.filter((s) => s.score.pp !== undefined); ?.scores?.scoresaber.filter((s) => s.score.pp !== undefined);
if (!rankedScores) return null; if (!rankedScores) return null;
const rankedScorePps = rankedScores const rankedScorePps = rankedScores