@@ -13,12 +13,13 @@ import {
13
13
LeaderboardRow
14
14
} from 'src/features/leaderboard/LeaderboardTypes' ;
15
15
16
- import default_avatar from '../../../assets/default-avatar.jpg' ;
17
16
import leaderboard_background from '../../../assets/leaderboard_background.jpg' ;
18
17
import LeaderboardDropdown from './LeaderboardDropdown' ;
19
18
import LeaderboardExportButton from './LeaderboardExportButton' ;
20
19
import LeaderboardPodium from './LeaderboardPodium' ;
21
20
21
+ import default_avatar from 'src/assets/default-avatar.jpg'
22
+
22
23
const OverallLeaderboard : React . FC = ( ) => {
23
24
// Retrieve XP Data from store
24
25
const rankedLeaderboard : LeaderboardRow [ ] = useTypedSelector ( store => store . leaderboard . userXp ) ;
@@ -49,6 +50,21 @@ const OverallLeaderboard: React.FC = () => {
49
50
const visibleEntries = useTypedSelector ( store => store . session . topLeaderboardDisplay ) ;
50
51
const topX = rankedLeaderboard . slice ( 0 , Number ( visibleEntries ) ) ;
51
52
53
+ // Set sample profile pictures (Seeded random)
54
+ function convertToRandomNumber ( id : string ) : number {
55
+ const str = id . slice ( 1 ) ;
56
+ let hash = 0 ;
57
+ for ( let i = 0 ; i < str . length ; i ++ ) {
58
+ const char = str . charCodeAt ( i ) ;
59
+ hash = ( hash << 5 ) - hash + char ;
60
+ }
61
+ return ( Math . abs ( hash ) % 7 ) + 1 ;
62
+ }
63
+
64
+ rankedLeaderboard . map ( ( row : LeaderboardRow ) => {
65
+ row . avatar = `/assets/Sample Profile ${ convertToRandomNumber ( row . username ) } .jpg` ;
66
+ } )
67
+
52
68
// Define column definitions for ag-Grid
53
69
const columnDefs : ColDef < LeaderboardRow > [ ] = useMemo (
54
70
( ) => [
@@ -57,7 +73,7 @@ const OverallLeaderboard: React.FC = () => {
57
73
suppressMovable : true ,
58
74
headerName : 'Rank' ,
59
75
width : 84 ,
60
- sortable : true ,
76
+ sortable : true ,
61
77
cellRenderer : ( params : any ) => {
62
78
const rank = params . value ;
63
79
const medal = rank === 1 ? '🥇' : rank === 2 ? '🥈' : rank === 3 ? '🥉' : '' ;
@@ -81,14 +97,15 @@ const OverallLeaderboard: React.FC = () => {
81
97
)
82
98
} ,
83
99
{ field : 'name' , suppressMovable : true , headerName : 'Name' , width : 520 , sortable : true } ,
84
- { field : 'xp' , suppressMovable : true , headerName : 'XP' , width : 154 , sortable : true } ,
100
+ { field : 'xp' , suppressMovable : true , headerName : 'XP' , width : 414 /* 154*/ , sortable : true } /* ,
85
101
{
86
102
field: 'achievements',
87
103
suppressMovable: true,
88
104
sortable: false,
89
105
headerName: 'Achievements',
90
106
width: 260
91
107
}
108
+ */
92
109
] ,
93
110
[ ]
94
111
) ;
0 commit comments