@@ -10,7 +10,12 @@ import {
10
10
RankingEntry ,
11
11
SumRankingEntry ,
12
12
} from "../interfaces/RankingEntry" ;
13
- import { ContestId , ProblemId , UserId } from "../interfaces/Status" ;
13
+ import {
14
+ ContestId ,
15
+ ProblemId ,
16
+ ProblemIndex ,
17
+ UserId ,
18
+ } from "../interfaces/Status" ;
14
19
import { isSubmission } from "../interfaces/Submission" ;
15
20
import { isUserRankEntry , UserRankEntry } from "../interfaces/UserRankEntry" ;
16
21
import { clipDifficulty , isValidResult } from "../utils" ;
@@ -203,18 +208,28 @@ export const useContestToProblems = () => {
203
208
const contestIdToProblemIdArray = useSWRData ( url , ( url ) =>
204
209
fetchTypedArray (
205
210
url ,
206
- ( obj ) : obj is { contest_id : ContestId ; problem_id : ProblemId } =>
211
+ (
212
+ obj
213
+ ) : obj is {
214
+ contest_id : ContestId ;
215
+ problem_id : ProblemId ;
216
+ problem_index : ProblemIndex ;
217
+ } =>
207
218
hasPropertyAsType ( obj , "contest_id" , isString ) &&
208
- hasPropertyAsType ( obj , "problem_id" , isString )
219
+ hasPropertyAsType ( obj , "problem_id" , isString ) &&
220
+ hasPropertyAsType ( obj , "problem_index" , isString )
209
221
)
210
222
) ;
211
223
const problemMap = useProblemMap ( ) ;
212
224
return contestIdToProblemIdArray . data ?. reduce (
213
- ( map , { contest_id, problem_id } ) => {
225
+ ( map , { contest_id, problem_id, problem_index } ) => {
214
226
const problem = problemMap ?. get ( problem_id ) ;
215
227
if ( problem ) {
216
228
const problems = map . get ( contest_id ) ?? [ ] ;
217
- problems . push ( problem ) ;
229
+ problems . push ( {
230
+ ...problem ,
231
+ title : `${ problem_index } . ${ problem . title . replace ( / ^ .+ ?\. * / , "" ) } ` ,
232
+ } ) ;
218
233
map . set ( contest_id , problems ) ;
219
234
}
220
235
return map ;
@@ -228,18 +243,28 @@ export const useContestToMergedProblems = () => {
228
243
const contestIdToProblemIdArray = useSWRData ( url , ( url ) =>
229
244
fetchTypedArray (
230
245
url ,
231
- ( obj ) : obj is { contest_id : ContestId ; problem_id : ProblemId } =>
246
+ (
247
+ obj
248
+ ) : obj is {
249
+ contest_id : ContestId ;
250
+ problem_id : ProblemId ;
251
+ problem_index : ProblemIndex ;
252
+ } =>
232
253
hasPropertyAsType ( obj , "contest_id" , isString ) &&
233
- hasPropertyAsType ( obj , "problem_id" , isString )
254
+ hasPropertyAsType ( obj , "problem_id" , isString ) &&
255
+ hasPropertyAsType ( obj , "problem_index" , isString )
234
256
)
235
257
) ;
236
258
const { data : problemMap } = useMergedProblemMap ( ) ;
237
259
return contestIdToProblemIdArray . data ?. reduce (
238
- ( map , { contest_id, problem_id } ) => {
260
+ ( map , { contest_id, problem_id, problem_index } ) => {
239
261
const problem = problemMap ?. get ( problem_id ) ;
240
262
if ( problem ) {
241
263
const problems = map . get ( contest_id ) ?? [ ] ;
242
- problems . push ( problem ) ;
264
+ problems . push ( {
265
+ ...problem ,
266
+ title : `${ problem_index } . ${ problem . title . replace ( / ^ ..* ?\. / , "" ) } ` ,
267
+ } ) ;
243
268
map . set ( contest_id , problems ) ;
244
269
}
245
270
return map ;
0 commit comments