import React, { useEffect } from "react"; import { Helmet } from "react-helmet"; import RankingEntry from "@components/RankingEntry"; import { Ranking, SteamRanking, RankingType, SteamRankingType } from "@customTypes/Ranking"; import { API } from "@api/Api"; import "@css/Rankings.css"; const Rankings: React.FC = () => { const [leaderboardData, setLeaderboardData] = React.useState(); const [currentLeaderboard, setCurrentLeaderboard] = React.useState(); enum LeaderboardTypes { official, unofficial } const [currentRankingType, setCurrentRankingType] = React.useState(LeaderboardTypes.official); const [leaderboardLoad, setLeaderboardLoad] = React.useState(false); enum RankingCategories { rankings_overall, rankings_multiplayer, rankings_singleplayer } const [currentLeaderboardType, setCurrentLeaderboardType] = React.useState(RankingCategories.rankings_singleplayer); const [load, setLoad] = React.useState(false); const _fetch_rankings = async () => { setLeaderboardLoad(false); const rankings = await API.get_official_rankings(); setLeaderboardData(rankings); if (currentLeaderboardType == RankingCategories.rankings_singleplayer) { setCurrentLeaderboard(rankings.rankings_singleplayer) } else if (currentLeaderboardType == RankingCategories.rankings_multiplayer) { setCurrentLeaderboard(rankings.rankings_multiplayer) } else { setCurrentLeaderboard(rankings.rankings_overall) } setLoad(true); setLeaderboardLoad(true); } const __dev_fetch_unofficial_rankings = async () => { try { setLeaderboardLoad(false); const rankings = await API.get_unofficial_rankings(); setLeaderboardData(rankings); if (currentLeaderboardType == RankingCategories.rankings_singleplayer) { setCurrentLeaderboard(rankings.rankings_singleplayer) } else if (currentLeaderboardType == RankingCategories.rankings_multiplayer) { setCurrentLeaderboard(rankings.rankings_multiplayer) } else { setCurrentLeaderboard(rankings.rankings_overall) } setLeaderboardLoad(true); } catch (e) { console.log(e) } } 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); } setCurrentLeaderboardType(ranking_cat); } const _set_leaderboard_type = (leaderboard_type: LeaderboardTypes) => { if (leaderboard_type == LeaderboardTypes.official) { _fetch_rankings(); } else { } } useEffect(() => { _fetch_rankings(); if (load) { _set_current_leaderboard(RankingCategories.rankings_singleplayer); } }, [load]) return (
LPHUB | Rankings
{load ?
Rank Player Portals
{leaderboardLoad && currentLeaderboard?.map((curRankingData, i) => { return }) } {leaderboardLoad ? null :
}
: null}
) } export default Rankings;