import React, { useEffect } from "react"; import RankingEntry from "../components/RankingEntry"; import { Ranking, RankingType } from "../types/Ranking"; import { API } from "../api/Api"; import "../css/Rankings.css"; const Rankings: React.FC = () => { const [leaderboardData, setLeaderboardData] = React.useState(); const [currentLeaderboardCat, setCurrentLeaderboardCat] = React.useState(); const [currentLeaderboard, setCurrentLeaderboard] = React.useState(); const [load, setLoad] = React.useState(false); enum RankingCategories { rankings_overall, rankings_multiplayer, rankings_singleplayer } const _fetch_rankings = async () => { const rankings = await API.get_rankings(); setLeaderboardData(rankings); setLoad(true); } const _set_current_leaderboard = (ranking_cat: RankingCategories) => { if (ranking_cat == RankingCategories.rankings_singleplayer) { setCurrentLeaderboard(leaderboardData!.rankings_singleplayer); } else if (ranking_cat == RankingCategories.rankings_multiplayer) { setCurrentLeaderboard(leaderboardData!.rankings_multiplayer); } else { setCurrentLeaderboard(leaderboardData!.rankings_overall); } } useEffect(() => { _fetch_rankings(); if (load) { _set_current_leaderboard(RankingCategories.rankings_singleplayer); } }, [load]) return (
{load ?
Rank Player Portals
{currentLeaderboard?.map((curRankingData, i) => { return }) }
: null}
) } export default Rankings;