Skip to content

Commit 10fed7b

Browse files
authored
Merge pull request #136 from iilj/feature/#135_SolvedProblemList_Badge
Resolve #135
2 parents 4701715 + 14ba658 commit 10fed7b

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

src/index.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ h4 {
140140
margin-bottom: 1rem;
141141
}
142142

143+
.badge {
144+
margin-left: 0.5rem;
145+
}
146+
143147
.difficulty-red {
144148
color: #ff0000;
145149
}

src/interfaces/SolvedProblem.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { Problem } from './Problem';
44
export interface SolvedProblem extends Problem {
55
/** 最初に正答された時間(RFC 3339) */
66
readonly Date: string;
7+
/** 最初に(リジャッジ前に)ACした提出の情報かどうか */
8+
First: boolean;
79
}
810

911
/** ユーザーが最初に(リジャッジ前に)ACした問題 */

src/pages/UserPage/SolvedProblemList.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { ProblemId, ProblemLevel, ProblemNo } from '../../interfaces/Problem';
1616
import { SolvedProblem } from '../../interfaces/SolvedProblem';
1717
import { Contest, ContestId } from '../../interfaces/Contest';
1818
import { Difficulties, Difficulty } from '../../interfaces/Difficulty';
19+
import { Badge } from 'reactstrap';
1920

2021
interface Entry extends SolvedProblem {
2122
Contest: Contest | undefined;
@@ -112,8 +113,11 @@ export const SolvedProblemList: React.FC<Props> = (props) => {
112113
<TableHeaderColumn
113114
dataSort
114115
dataField="Date"
115-
dataFormat={(date: string) => (
116-
<>{dataFormat(new Date(date), 'yyyy/mm/dd HH:MM')}</>
116+
dataFormat={(date: string, row: Entry) => (
117+
<>
118+
<>{dataFormat(new Date(date), 'yyyy/mm/dd HH:MM')}</>
119+
<>{!row.First && <Badge color="success">After Rejudge</Badge>}</>
120+
</>
117121
)}
118122
>
119123
Date

src/utils/TypedCachedApiClient.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,20 @@ const fetchUserInfo = (param: UserParam, user: UserName) =>
5050
const fetchSolvedProblems = (param: UserParam, user: UserName) =>
5151
fetchJson<SolvedProblem[]>(
5252
`${STATIC_API_BASE_URL}/solved/${param}/${encodeURIComponent(user)}`
53+
).then((solvedProblems) =>
54+
solvedProblems.map((solvedProblem) => {
55+
solvedProblem.First = false;
56+
return solvedProblem;
57+
})
5358
);
5459
const fetchFirstSolvedProblems = (param: UserParam, user: UserName) =>
5560
fetchJson<FirstSolvedProblem[]>(
5661
`${STATIC_API_BASE_URL}/solved/${param}/${encodeURIComponent(user)}/first`
62+
).then((solvedProblems) =>
63+
solvedProblems.map((solvedProblem) => {
64+
solvedProblem.First = true;
65+
return solvedProblem;
66+
})
5767
);
5868
const fetchSingleProblem = (problemId: ProblemId) =>
5969
fetchJson<Problem>(`${STATIC_API_BASE_URL}/problems/${problemId}`);

0 commit comments

Comments
 (0)