Skip to content

Commit 8843c50

Browse files
committed
impr(account): add restarts per test and highest wpm to activity graph
1 parent 9d28a42 commit 8843c50

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

frontend/src/ts/controllers/chart-controller.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,8 @@ export type OtherChartData = {
298298
export type ActivityChartDataPoint = {
299299
x: number;
300300
y: number;
301+
maxWpm?: number;
302+
restarts?: number;
301303
amount?: number;
302304
avgWpm?: number;
303305
avgAcc?: number;
@@ -722,7 +724,11 @@ export const accountActivity = new ChartWithUpdateColors<
722724
true
723725
)}\nTests Completed: ${
724726
resultData.amount
725-
}\nAverage ${Config.typingSpeedUnit.toUpperCase()}: ${Numbers.roundTo2(
727+
}\nRestarts per test: ${Numbers.roundTo2(
728+
(resultData.restarts ?? 0) / (resultData.amount ?? 0)
729+
)}\nHighest ${Config.typingSpeedUnit.toUpperCase()}: ${Numbers.roundTo2(
730+
typingSpeedUnit.fromWpm(resultData.maxWpm ?? 0)
731+
)}\nAverage ${Config.typingSpeedUnit.toUpperCase()}: ${Numbers.roundTo2(
726732
typingSpeedUnit.fromWpm(resultData.avgWpm ?? 0)
727733
)}\nAverage Accuracy: ${Numbers.roundTo2(
728734
resultData.avgAcc ?? 0

frontend/src/ts/pages/account.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,10 @@ async function fillContent(): Promise<void> {
264264
type ActivityChartData = Record<
265265
number,
266266
{
267+
restarts: number;
267268
amount: number;
268269
time: number;
270+
maxWpm: number;
269271
totalWpm: number;
270272
totalAcc: number;
271273
totalCon: number;
@@ -523,20 +525,26 @@ async function fillContent(): Promise<void> {
523525

524526
if (dataForTimestamp !== undefined) {
525527
dataForTimestamp.amount++;
528+
dataForTimestamp.restarts += result.restartCount ?? 0;
526529
dataForTimestamp.time +=
527530
result.testDuration +
528531
(result.incompleteTestSeconds ?? 0) -
529532
(result.afkDuration ?? 0);
533+
if (result.wpm > dataForTimestamp.maxWpm) {
534+
dataForTimestamp.maxWpm = result.wpm;
535+
}
530536
dataForTimestamp.totalWpm += result.wpm;
531537
dataForTimestamp.totalAcc += result.acc;
532538
dataForTimestamp.totalCon += result.consistency ?? 0;
533539
} else {
534540
activityChartData[resultTimestamp] = {
535541
amount: 1,
542+
restarts: result.restartCount ?? 0,
536543
time:
537544
result.testDuration +
538545
(result.incompleteTestSeconds ?? 0) -
539546
(result.afkDuration ?? 0),
547+
maxWpm: result.wpm,
540548
totalWpm: result.wpm,
541549
totalAcc: result.acc,
542550
totalCon: result.consistency ?? 0,
@@ -685,6 +693,8 @@ async function fillContent(): Promise<void> {
685693
x: dateInt,
686694
y: dataPoint.time / 60,
687695
amount: dataPoint.amount,
696+
restarts: dataPoint.restarts,
697+
maxWpm: Numbers.roundTo2(typingSpeedUnit.fromWpm(dataPoint.maxWpm)),
688698
avgWpm: Numbers.roundTo2(dataPoint.totalWpm / dataPoint.amount),
689699
avgAcc: Numbers.roundTo2(dataPoint.totalAcc / dataPoint.amount),
690700
avgCon: Numbers.roundTo2(dataPoint.totalCon / dataPoint.amount),

0 commit comments

Comments
 (0)