diff options
Diffstat (limited to 'frontend/src/pages/Rankings.tsx')
| -rw-r--r-- | frontend/src/pages/Rankings.tsx | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/frontend/src/pages/Rankings.tsx b/frontend/src/pages/Rankings.tsx index e912b73..ab82931 100644 --- a/frontend/src/pages/Rankings.tsx +++ b/frontend/src/pages/Rankings.tsx | |||
| @@ -37,7 +37,7 @@ const Rankings: React.FC = () => { | |||
| 37 | React.useState<RankingCategories>(RankingCategories.rankings_singleplayer); | 37 | React.useState<RankingCategories>(RankingCategories.rankings_singleplayer); |
| 38 | const [load, setLoad] = React.useState<boolean>(false); | 38 | const [load, setLoad] = React.useState<boolean>(false); |
| 39 | 39 | ||
| 40 | const _fetch_rankings = async () => { | 40 | const _fetch_rankings = React.useCallback(async () => { |
| 41 | setLeaderboardLoad(false); | 41 | setLeaderboardLoad(false); |
| 42 | const rankings = await API.get_official_rankings(); | 42 | const rankings = await API.get_official_rankings(); |
| 43 | setLeaderboardData(rankings); | 43 | setLeaderboardData(rankings); |
| @@ -52,7 +52,7 @@ const Rankings: React.FC = () => { | |||
| 52 | } | 52 | } |
| 53 | setLoad(true); | 53 | setLoad(true); |
| 54 | setLeaderboardLoad(true); | 54 | setLeaderboardLoad(true); |
| 55 | }; | 55 | }, [currentLeaderboardType]); |
| 56 | 56 | ||
| 57 | const __dev_fetch_unofficial_rankings = async () => { | 57 | const __dev_fetch_unofficial_rankings = async () => { |
| 58 | try { | 58 | try { |
| @@ -75,17 +75,20 @@ const Rankings: React.FC = () => { | |||
| 75 | } | 75 | } |
| 76 | }; | 76 | }; |
| 77 | 77 | ||
| 78 | const _set_current_leaderboard = (ranking_cat: RankingCategories) => { | 78 | const _set_current_leaderboard = React.useCallback( |
| 79 | if (ranking_cat === RankingCategories.rankings_singleplayer) { | 79 | (ranking_cat: RankingCategories) => { |
| 80 | setCurrentLeaderboard(leaderboardData!.rankings_singleplayer); | 80 | if (ranking_cat === RankingCategories.rankings_singleplayer) { |
| 81 | } else if (ranking_cat === RankingCategories.rankings_multiplayer) { | 81 | setCurrentLeaderboard(leaderboardData!.rankings_singleplayer); |
| 82 | setCurrentLeaderboard(leaderboardData!.rankings_multiplayer); | 82 | } else if (ranking_cat === RankingCategories.rankings_multiplayer) { |
| 83 | } else { | 83 | setCurrentLeaderboard(leaderboardData!.rankings_multiplayer); |
| 84 | setCurrentLeaderboard(leaderboardData!.rankings_overall); | 84 | } else { |
| 85 | } | 85 | setCurrentLeaderboard(leaderboardData!.rankings_overall); |
| 86 | } | ||
| 86 | 87 | ||
| 87 | setCurrentLeaderboardType(ranking_cat); | 88 | setCurrentLeaderboardType(ranking_cat); |
| 88 | }; | 89 | }, |
| 90 | [leaderboardData] | ||
| 91 | ); | ||
| 89 | 92 | ||
| 90 | // unused func | 93 | // unused func |
| 91 | // const _set_leaderboard_type = (leaderboard_type: LeaderboardTypes) => { | 94 | // const _set_leaderboard_type = (leaderboard_type: LeaderboardTypes) => { |
| @@ -100,7 +103,12 @@ const Rankings: React.FC = () => { | |||
| 100 | if (load) { | 103 | if (load) { |
| 101 | _set_current_leaderboard(RankingCategories.rankings_singleplayer); | 104 | _set_current_leaderboard(RankingCategories.rankings_singleplayer); |
| 102 | } | 105 | } |
| 103 | }, [load, RankingCategories.rankings_singleplayer]); | 106 | }, [ |
| 107 | load, | ||
| 108 | RankingCategories.rankings_singleplayer, | ||
| 109 | _fetch_rankings, | ||
| 110 | _set_current_leaderboard, | ||
| 111 | ]); | ||
| 104 | 112 | ||
| 105 | return ( | 113 | return ( |
| 106 | <main> | 114 | <main> |