Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e8f1523

Browse files
committed
Fix #170, update firstSolved/solved merge procedure
1 parent 9b82b6a commit e8f1523

File tree

3 files changed

+47
-11
lines changed

3 files changed

+47
-11
lines changed

‎src/pages/UserPage/SolvedProblemList.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ export const SolvedProblemList: React.FC<Props> = (props) => {
4444
toDate,
4545
problemLinkColorMode,
4646
} = props;
47-
4847
return (
4948
<BootstrapTable
5049
data={solvedProblems

‎src/pages/UserPage/index.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,13 @@ export const UserPage: React.FC = () => {
211211
},
212212
[] as SolvedProblem[]
213213
);
214+
// merge
215+
// solvedProblems に入っていて firstSolvedProblemsMap に入っていないものを追加する
216+
solvedProblems.forEach((solvedProblem) => {
217+
if (!firstSolvedProblemsMap.has(solvedProblem.ProblemId)) {
218+
mergedSolvedProblems.push(solvedProblem);
219+
}
220+
});
214221

215222
// for user info section
216223
/** returns [shortestCount, shortestRank] */

‎src/utils/MergeProcs.ts

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,48 @@ export const mergeSolveStatus = (
7676
};
7777
}
7878
// assert コンテスト情報あり
79+
7980
if (!firstSolvedProblem) {
80-
// 未 AC
81-
return {
82-
...problem,
83-
Contest: extendedContest,
84-
DateNum,
85-
SolveStatus: ProblemSolveStatus.Trying,
86-
Difficulty,
87-
Augmented,
88-
Index: problemIndexMap.get(problem.ProblemId),
89-
};
81+
if (!solvedProblem) {
82+
// 未 AC
83+
return {
84+
...problem,
85+
Contest: extendedContest,
86+
DateNum,
87+
SolveStatus: ProblemSolveStatus.Trying,
88+
Difficulty,
89+
Augmented,
90+
Index: problemIndexMap.get(problem.ProblemId),
91+
};
92+
} else {
93+
// 何故か firstSolvedProblem のほうに入っていないことがあるので polyfill
94+
// firstSolvedProblem の代わりに solvedProblem を使う
95+
const SolveDate = solvedProblem?.Date;
96+
const SolveDateNum = SolveDate ? Date.parse(SolveDate) : undefined;
97+
const FirstSolveDate = solvedProblem.Date;
98+
const FirstSolveDateNum = Date.parse(FirstSolveDate);
99+
const SolveStatus =
100+
FirstSolveDateNum > extendedContest.EndDateNum
101+
? ProblemSolveStatus.Solved
102+
: FirstSolveDateNum >= extendedContest.DateNum
103+
? ProblemSolveStatus.Intime
104+
: ProblemSolveStatus.BeforeContest;
105+
return {
106+
...problem,
107+
Contest: extendedContest,
108+
DateNum,
109+
SolveDate,
110+
SolveDateNum,
111+
FirstSolveDate,
112+
FirstSolveDateNum,
113+
SolveStatus,
114+
Difficulty,
115+
Augmented,
116+
Index: problemIndexMap.get(problem.ProblemId),
117+
};
118+
}
90119
}
120+
91121
// assert AC 済み
92122
const SolveDate = solvedProblem?.Date;
93123
const SolveDateNum = SolveDate ? Date.parse(SolveDate) : undefined;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /