@@ -209,15 +209,19 @@ export default function CollaborationPage(props: CollaborationProps) {
209
209
} ;
210
210
211
211
const updateSubmissionResults = ( data : SubmissionResults ) => {
212
- setSubmissionHiddenTestResultsAndStatus ( {
212
+ const submissionHiddenTestResultsAndStatus : SubmissionHiddenTestResultsAndStatus = {
213
213
hiddenTestResults : data . hiddenTestResults ,
214
214
status : data . status ,
215
- } ) ;
215
+ }
216
+ setSubmissionHiddenTestResultsAndStatus ( submissionHiddenTestResultsAndStatus ) ;
217
+ localStorage . setItem ( "submissionHiddenTestResultsAndStatus" , JSON . stringify ( submissionHiddenTestResultsAndStatus ) ) ;
216
218
setVisibleTestCases ( data . visibleTestResults ) ;
219
+ localStorage . setItem ( "visibleTestResults" , JSON . stringify ( data . visibleTestResults ) ) ;
217
220
} ;
218
221
219
222
const updateExecutionResults = ( data : ExecutionResults ) => {
220
223
setVisibleTestCases ( data . visibleTestResults ) ;
224
+ localStorage . setItem ( "visibleTestResults" , JSON . stringify ( data . visibleTestResults ) ) ;
221
225
} ;
222
226
223
227
const handleRunTestCases = async ( ) => {
@@ -231,7 +235,7 @@ export default function CollaborationPage(props: CollaborationProps) {
231
235
language : selectedLanguage ,
232
236
customTestCases : "" ,
233
237
} ) ;
234
- setVisibleTestCases ( data . visibleTestResults ) ;
238
+ updateExecutionResults ( data ) ;
235
239
infoMessage ( "Test cases executed. Review the results below." ) ;
236
240
sendExecutionResultsToMatchedUser ( data ) ;
237
241
setIsLoadingTestCase ( false ) ;
@@ -254,11 +258,11 @@ export default function CollaborationPage(props: CollaborationProps) {
254
258
questionDifficulty : complexity ?? "" ,
255
259
questionTopics : categories ,
256
260
} ) ;
257
- setVisibleTestCases ( data . visibleTestResults ) ;
258
- setSubmissionHiddenTestResultsAndStatus ( {
259
- hiddenTestResults : data . hiddenTestResults ,
260
- status : data . status ,
261
+ updateExecutionResults ( {
262
+ visibleTestResults : data . visibleTestResults ,
263
+ customTestResults : [ ] ,
261
264
} ) ;
265
+ updateSubmissionResults ( data ) ;
262
266
sendSubmissionResultsToMatchedUser ( data ) ;
263
267
successMessage ( "Code saved successfully!" ) ;
264
268
setIsLoadingSubmission ( false ) ;
@@ -283,13 +287,20 @@ export default function CollaborationPage(props: CollaborationProps) {
283
287
const currentUser : string = localStorage . getItem ( "user" ) ?? "" ;
284
288
const matchedTopics : string [ ] =
285
289
localStorage . getItem ( "matchedTopics" ) ?. split ( "," ) ?? [ ] ;
290
+ const submissionHiddenTestResultsAndStatus : SubmissionHiddenTestResultsAndStatus | undefined =
291
+ localStorage . getItem ( "submissionHiddenTestResultsAndStatus" )
292
+ ? JSON . parse ( localStorage . getItem ( "submissionHiddenTestResultsAndStatus" ) as string )
293
+ : undefined ;
294
+ const visibleTestCases : Test [ ] = JSON . parse ( localStorage . getItem ( "visibleTestResults" ) ?? "[]" ) ?? [ ] ;
286
295
287
296
// Set states from localstorage
288
297
setCollaborationId ( collabId ) ;
289
298
setMatchedUser ( matchedUser ) ;
290
299
setCurrentUser ( currentUser ) ;
291
300
setMatchedTopics ( matchedTopics ) ;
292
301
setQuestionDocRefId ( questionDocRefId ) ;
302
+ setSubmissionHiddenTestResultsAndStatus ( submissionHiddenTestResultsAndStatus ) ;
303
+ setVisibleTestCases ( visibleTestCases ) ;
293
304
294
305
GetSingleQuestion ( questionDocRefId ) . then ( ( data : Question ) => {
295
306
setQuestionTitle ( `${ data . id } . ${ data . title } ` ) ;
@@ -298,9 +309,11 @@ export default function CollaborationPage(props: CollaborationProps) {
298
309
setDescription ( data . description ) ;
299
310
} ) ;
300
311
301
- GetVisibleTests ( questionDocRefId ) . then ( ( data : Test [ ] ) => {
302
- setVisibleTestCases ( data ) ;
303
- } ) ;
312
+ if ( visibleTestCases . length == 0 ) {
313
+ GetVisibleTests ( questionDocRefId ) . then ( ( data : Test [ ] ) => {
314
+ setVisibleTestCases ( data ) ;
315
+ } ) ;
316
+ }
304
317
305
318
// Start stopwatch
306
319
startStopwatch ( ) ;
@@ -384,6 +397,8 @@ export default function CollaborationPage(props: CollaborationProps) {
384
397
localStorage . removeItem ( "collabId" ) ;
385
398
localStorage . removeItem ( "questionDocRefId" ) ;
386
399
localStorage . removeItem ( "matchedTopics" ) ;
400
+ localStorage . removeItem ( "submissionHiddenTestResultsAndStatus" ) ;
401
+ localStorage . removeItem ( "visibleTestResults" ) ;
387
402
} ;
388
403
389
404
return (
0 commit comments