|
1 | 1 | import React from 'react';
|
| 2 | +import { ProblemSubmissionResult } from '../../../models/groups/problem'; |
| 3 | +import TestCaseResult from './TestCaseResult'; |
2 | 4 |
|
3 | 5 | const OnlineJudgeSubmission = ({
|
4 | 6 | submission,
|
5 | 7 | }: {
|
6 |
| - submission: any; |
| 8 | + submission: ProblemSubmissionResult; |
7 | 9 | }): JSX.Element => {
|
8 | 10 | return (
|
9 |
| - <pre>{JSON.stringify(submission, null, 2)}</pre> |
10 |
| - // <div> |
11 |
| - // <div> |
12 |
| - // {submission.gradingStatus === 'waiting' && |
13 |
| - // 'Waiting for an available grading server...'} |
14 |
| - // {submission.gradingStatus === 'in_progress' && 'Grading in progress'} |
15 |
| - // {submission.gradingStatus === 'done' && |
16 |
| - // (submission.compilationError ? 'Compilation Error' : 'Done')} |
17 |
| - // {submission.gradingStatus === 'error' && |
18 |
| - // (submission.errorMessage |
19 |
| - // ? 'Error: ' + submission.errorMessage |
20 |
| - // : 'Error')} |
21 |
| - // </div> |
22 |
| - // {submission.gradingStatus === 'done' && |
23 |
| - // submission.status !== ExecutionStatus.AC && ( |
24 |
| - // <p> |
25 |
| - // Common issues: Java users should name their class Main. Remember to |
26 |
| - // use standard input/output instead of file input/output. Finally, our |
27 |
| - // grader currently has an issue that requires you to output an endline |
28 |
| - // (ex. \n or endl) at the end of the output. This is a bug (it works |
29 |
| - // on USACO without the endline) that we're working on fixing. |
30 |
| - // </p> |
31 |
| - // )} |
32 |
| - // {submission.compilationError === true && ( |
33 |
| - // <pre className="text-red-800 dark:text-red-200 overflow-auto"> |
34 |
| - // {submission.compilationErrorMessage} |
35 |
| - // </pre> |
36 |
| - // )} |
37 |
| - // {submission.compilationError === false && ( |
38 |
| - // <div> |
39 |
| - // {submission.testCases.map(tc => ( |
40 |
| - // <TestCaseResult data={tc} key={tc.caseId} /> |
41 |
| - // ))} |
42 |
| - // </div> |
43 |
| - // )} |
44 |
| - // </div> |
| 11 | + <div> |
| 12 | + <div> |
| 13 | + {submission.status === 'compiling' && 'Compiling in progress...'} |
| 14 | + {submission.status === 'executing' && 'Grading in progress...'} |
| 15 | + {submission.status === 'done' && |
| 16 | + (submission.verdict === 'CE' |
| 17 | + ? 'Compilation Error' |
| 18 | + : submission.verdict === 'IE' |
| 19 | + ? 'Internal Error: ' + |
| 20 | + submission.message + |
| 21 | + ' ' + |
| 22 | + submission.debugData |
| 23 | + : 'Done')} |
| 24 | + </div> |
| 25 | + {submission.verdict !== 'IE' && ( |
| 26 | + <> |
| 27 | + {submission.status === 'done' && submission.verdict !== 'AC' && ( |
| 28 | + <p> |
| 29 | + Common issues: Java users should name their class Main. Remember |
| 30 | + to use standard input/output instead of file input/output. |
| 31 | + Finally, our grader currently has an issue that requires you to |
| 32 | + output an endline (ex. \n or endl) at the end of the output. This |
| 33 | + is a bug (it works on USACO without the endline) that we're |
| 34 | + working on fixing. |
| 35 | + </p> |
| 36 | + )} |
| 37 | + {submission.verdict === 'CE' && ( |
| 38 | + <pre className="text-red-800 dark:text-red-200 overflow-auto"> |
| 39 | + {submission.message} |
| 40 | + </pre> |
| 41 | + )} |
| 42 | + {submission.verdict !== 'CE' && ( |
| 43 | + <div> |
| 44 | + {submission.testCases.map((tc, i) => ( |
| 45 | + <TestCaseResult |
| 46 | + data={tc} |
| 47 | + tcNum={i + 1} |
| 48 | + key={submission.submissionID + '_' + i} |
| 49 | + /> |
| 50 | + ))} |
| 51 | + </div> |
| 52 | + )} |
| 53 | + </> |
| 54 | + )} |
| 55 | + </div> |
45 | 56 | );
|
46 | 57 | };
|
47 | 58 |
|
|
0 commit comments