diff --git a/src/common/playleaderboard/TopPlayCreators.jsx b/src/common/playleaderboard/TopPlayCreators.jsx index c2151b1f71..1d439fd9cf 100644 --- a/src/common/playleaderboard/TopPlayCreators.jsx +++ b/src/common/playleaderboard/TopPlayCreators.jsx @@ -4,23 +4,39 @@ import TableCell from '@mui/material/TableCell'; import TableContainer from '@mui/material/TableContainer'; import TableHead from '@mui/material/TableHead'; import TableRow from '@mui/material/TableRow'; +import EmojiEventsIcon from '@mui/icons-material/EmojiEvents'; import './leaderBoard.css'; const TopPlayCreators = ({ topPlayCreators }) => { - const profilePicture = (name, avatarUrl) => { - return ( -
- {name} -
{name}
-
- ); + const getRankIcon = (rank) => { + if (rank === 1) { + return ; + } + + if (rank === 2) { + return ; + } + + if (rank === 3) { + return ; + } + + return null; }; + const profilePicture = (name, avatarUrl, rank) => ( +
+ {getRankIcon(rank)} + {name} +
{name}
+
+ ); + return ( @@ -30,24 +46,34 @@ const TopPlayCreators = ({ topPlayCreators }) => { Name - Number of plays + Number of Plays - {topPlayCreators.map((creator) => ( - - - {profilePicture(creator.displayName, creator.avatarUrl)} - - - {creator.count} - - - ))} + {topPlayCreators.map((creator, index) => { + const rank = index + 1; + + return ( + + + {profilePicture(creator.displayName, creator.avatarUrl, rank)} + + + {creator.count} + + + ); + })}
diff --git a/src/common/playleaderboard/leaderBoard.css b/src/common/playleaderboard/leaderBoard.css index 0af9bc10e9..edb2a2df66 100644 --- a/src/common/playleaderboard/leaderBoard.css +++ b/src/common/playleaderboard/leaderBoard.css @@ -5,11 +5,12 @@ margin-top: 10px; margin-bottom: 20px; padding: 5px 2rem 1rem 2rem; - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), + 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), - var(--tw-shadow); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .leaderboard-table-cell { @@ -24,6 +25,8 @@ .leaderboard-heading { font-family: var(--ff-accent); font-size: 32px !important; + text-align: center; + margin-bottom: 12px; } .leaderboard-text { @@ -37,3 +40,40 @@ justify-content: center; height: 100vh; } + +/* Trophy colors */ +.gold-trophy { + color: #ffd700; +} +.silver-trophy { + color: #c0c0c0; +} +.bronze-trophy { + color: #cd7f32; +} + +/* Highlight top 3 rows */ +.rank-1 { + background: rgba(255, 215, 0, 0.15); + font-weight: bold; +} +.rank-2 { + background: rgba(192, 192, 192, 0.15); +} +.rank-3 { + background: rgba(205, 127, 50, 0.15); +} + +/* Avatar borders */ +.rank-avatar { + border: 2px solid transparent; +} +.rank-1 .rank-avatar { + border-color: #ffd700; +} +.rank-2 .rank-avatar { + border-color: #c0c0c0; +} +.rank-3 .rank-avatar { + border-color: #cd7f32; +}