@@ -7,19 +7,19 @@ import { ContestLeaderboardRow, LeaderboardRow } from 'src/features/leaderboard/
77import { Role } from '../../../commons/application/ApplicationTypes' ;
88
99type Props =
10- | { type : "contest" ; data : ContestLeaderboardRow [ ] }
11- | { type : "overall" ; data : LeaderboardRow [ ] } ;
10+ | { type : "contest" ; contest : string | undefined ; data : ContestLeaderboardRow [ ] }
11+ | { type : "overall" ; contest : string | undefined ; data : LeaderboardRow [ ] } ;
1212
13- const LeaderboardExportButton : React . FC < Props > = ( { type, data } ) => {
13+ const LeaderboardExportButton : React . FC < Props > = ( { type, contest , data } ) => {
1414 const role = useTypedSelector ( store => store . session . role ) ;
1515 const exportCSV = ( ) => {
16- const headers = [ 'Rank' , 'Name' , 'Username' , ( type == "overall" ? 'XP' : 'Score' ) , ( type == "overall" ? 'Achievements' : 'Submission Id' ) ] ;
16+ const headers = [ 'Rank' , 'Name' , 'Username' , ( type === "overall" ? 'XP' : 'Score' ) , ( type = == "overall" ? 'Achievements' : 'Submission Id' ) ] ;
1717 const rows = data ?. map ( player => [
1818 player . rank ,
1919 player . name ,
2020 player . username ,
21- type == "overall" ? ( player as LeaderboardRow ) . xp : ( player as ContestLeaderboardRow ) . score ,
22- type == "overall" ? ( player as LeaderboardRow ) . achievements : ( player as ContestLeaderboardRow ) . submissionId
21+ type === "overall" ? ( player as LeaderboardRow ) . xp : ( player as ContestLeaderboardRow ) . score ,
22+ type === "overall" ? ( player as LeaderboardRow ) . achievements : ( player as ContestLeaderboardRow ) . submissionId
2323 ] ) ;
2424
2525 // Combine headers and rows
@@ -28,7 +28,7 @@ const LeaderboardExportButton: React.FC<Props> = ({ type, data }) => {
2828 const blob = new Blob ( [ csvContent ] , { type : 'text/csv;charset=utf-8;' } ) ;
2929 const link = document . createElement ( 'a' ) ;
3030 link . href = URL . createObjectURL ( blob ) ;
31- link . download = 'leaderboard .csv'; // Filename for download
31+ link . download = type === "overall" ? 'Overall Leaderboard .csv' : ` ${ contest } Leaderboard.csv` ; // Filename for download
3232 link . click ( ) ;
3333 } ;
3434
0 commit comments