aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/components
diff options
context:
space:
mode:
authorWolfboy248 <georgejvindkarlsen@gmail.com>2024-09-16 18:13:12 +0200
committerWolfboy248 <georgejvindkarlsen@gmail.com>2024-09-16 18:13:12 +0200
commitfa0856cedd846d82bcbd3f54dd491419b2c41910 (patch)
treea093b40012ed563d446b3d44f3227175ad9e4c87 /frontend/src/components
parentrefactor: unofficial rankings implementation (diff)
downloadlphub-fa0856cedd846d82bcbd3f54dd491419b2c41910.tar.gz
lphub-fa0856cedd846d82bcbd3f54dd491419b2c41910.tar.bz2
lphub-fa0856cedd846d82bcbd3f54dd491419b2c41910.zip
refactor: rankings page
Diffstat (limited to 'frontend/src/components')
-rw-r--r--frontend/src/components/RankingEntry.tsx50
1 files changed, 36 insertions, 14 deletions
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 @@
1import React from 'react'; 1import React from 'react';
2import { Link } from "react-router-dom"; 2import { Link } from "react-router-dom";
3import { RankingType } from '../types/Ranking'; 3import { RankingType, SteamRanking, SteamRankingType } from '../types/Ranking';
4
5enum RankingCategories {
6 rankings_overall,
7 rankings_multiplayer,
8 rankings_singleplayer
9}
4 10
5interface RankingEntryProps { 11interface RankingEntryProps {
6 curRankingData: RankingType; 12 curRankingData: RankingType | SteamRankingType;
13 currentLeaderboardType: RankingCategories
7}; 14};
8 15
9const RankingEntry: React.FC<RankingEntryProps> = (curRankingData) => { 16const RankingEntry: React.FC<RankingEntryProps> = (prop) => {
10 return ( 17 if ("placement" in prop.curRankingData) {
11 <div className='leaderboard-entry'> 18 return (
12 <span>{curRankingData.curRankingData.placement}</span> 19 <div className='leaderboard-entry'>
13 <div> 20 <span>{prop.curRankingData.placement}</span>
14 <Link to={`/users/${curRankingData.curRankingData.user.steam_id}`}> 21 <div>
15 <img src={curRankingData.curRankingData.user.avatar_link}></img> 22 <Link to={`/users/${prop.curRankingData.user.steam_id}`}>
16 <span>{curRankingData.curRankingData.user.user_name}</span> 23 <img src={prop.curRankingData.user.avatar_link}></img>
17 </Link> 24 <span>{prop.curRankingData.user.user_name}</span>
25 </Link>
26 </div>
27 <span>{prop.curRankingData.total_score}</span>
28 </div>
29 )
30 } else {
31 return (
32 <div className='leaderboard-entry'>
33 <span>{prop.currentLeaderboardType == RankingCategories.rankings_singleplayer ? prop.curRankingData.sp_rank : prop.currentLeaderboardType == RankingCategories.rankings_multiplayer ? prop.curRankingData.mp_rank : prop.curRankingData.overall_rank}</span>
34 <div>
35 <Link to={`/users/${prop.curRankingData.steam_id}`}>
36 <img src={prop.curRankingData.avatar_link}></img>
37 <span>{prop.curRankingData.user_name}</span>
38 </Link>
39 </div>
40 <span>{prop.curRankingData.overall_score}</span>
18 </div> 41 </div>
19 <span>{curRankingData.curRankingData.total_score}</span> 42 )
20 </div> 43 }
21 )
22} 44}
23 45
24export default RankingEntry; 46export default RankingEntry;