From fa0856cedd846d82bcbd3f54dd491419b2c41910 Mon Sep 17 00:00:00 2001 From: Wolfboy248 Date: Mon, 16 Sep 2024 18:13:12 +0200 Subject: refactor: rankings page --- frontend/src/components/RankingEntry.tsx | 50 +++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 14 deletions(-) (limited to 'frontend/src/components/RankingEntry.tsx') diff --git a/frontend/src/components/RankingEntry.tsx b/frontend/src/components/RankingEntry.tsx index 023a896..58a6aa6 100644 --- a/frontend/src/components/RankingEntry.tsx +++ b/frontend/src/components/RankingEntry.tsx @@ -1,24 +1,46 @@ import React from 'react'; import { Link } from "react-router-dom"; -import { RankingType } from '../types/Ranking'; +import { RankingType, SteamRanking, SteamRankingType } from '../types/Ranking'; + +enum RankingCategories { + rankings_overall, + rankings_multiplayer, + rankings_singleplayer +} interface RankingEntryProps { - curRankingData: RankingType; + curRankingData: RankingType | SteamRankingType; + currentLeaderboardType: RankingCategories }; -const RankingEntry: React.FC = (curRankingData) => { - return ( -
- {curRankingData.curRankingData.placement} -
- - - {curRankingData.curRankingData.user.user_name} - +const RankingEntry: React.FC = (prop) => { + if ("placement" in prop.curRankingData) { + return ( +
+ {prop.curRankingData.placement} +
+ + + {prop.curRankingData.user.user_name} + +
+ {prop.curRankingData.total_score} +
+ ) + } else { + return ( +
+ {prop.currentLeaderboardType == RankingCategories.rankings_singleplayer ? prop.curRankingData.sp_rank : prop.currentLeaderboardType == RankingCategories.rankings_multiplayer ? prop.curRankingData.mp_rank : prop.curRankingData.overall_rank} +
+ + + {prop.curRankingData.user_name} + +
+ {prop.curRankingData.overall_score}
- {curRankingData.curRankingData.total_score} -
- ) + ) + } } export default RankingEntry; -- cgit v1.2.3