From 3f529431d17c51ce4b52a61f174199ec3cd778c7 Mon Sep 17 00:00:00 2001 From: d1rshan Date: Sun, 17 May 2026 17:54:19 +0530 Subject: [PATCH 1/3] fix --- frontend/src/ts/elements/last-10-average.ts | 6 ++++++ frontend/src/ts/elements/modes-notice.ts | 3 +++ 2 files changed, 9 insertions(+) diff --git a/frontend/src/ts/elements/last-10-average.ts b/frontend/src/ts/elements/last-10-average.ts index a40c92ce8919..df1d9870e624 100644 --- a/frontend/src/ts/elements/last-10-average.ts +++ b/frontend/src/ts/elements/last-10-average.ts @@ -6,6 +6,7 @@ import { getUserAverage10 } from "../collections/results"; let averageWPM = 0; let averageAcc = 0; +let hasFetched = false; export async function update(): Promise { const mode2 = Misc.getMode2(Config, TestWords.currentQuote); @@ -16,6 +17,11 @@ export async function update(): Promise { averageWPM = Config.alwaysShowDecimalPlaces ? wpm : Math.round(wpm); averageAcc = Config.alwaysShowDecimalPlaces ? acc : Math.floor(acc); + hasFetched = true; +} + +export function hasData(): boolean { + return hasFetched; } export function getWPM(): number { diff --git a/frontend/src/ts/elements/modes-notice.ts b/frontend/src/ts/elements/modes-notice.ts index 1315ef9a678c..6c622c53e1be 100644 --- a/frontend/src/ts/elements/modes-notice.ts +++ b/frontend/src/ts/elements/modes-notice.ts @@ -183,6 +183,9 @@ export async function update(): Promise { } if (Config.showAverage !== "off") { + if (!Last10Average.hasData()) { + await Last10Average.update(); + } const avgWPM = Last10Average.getWPM(); const avgAcc = Last10Average.getAcc(); From a082dee1c9f1419691f62ef70e72745ab8c8ecf4 Mon Sep 17 00:00:00 2001 From: d1rshan Date: Sun, 17 May 2026 18:40:15 +0530 Subject: [PATCH 2/3] final fix --- frontend/src/ts/elements/last-10-average.ts | 13 +++++++------ frontend/src/ts/elements/modes-notice.ts | 3 --- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/frontend/src/ts/elements/last-10-average.ts b/frontend/src/ts/elements/last-10-average.ts index df1d9870e624..56e2dc997e96 100644 --- a/frontend/src/ts/elements/last-10-average.ts +++ b/frontend/src/ts/elements/last-10-average.ts @@ -3,10 +3,10 @@ import * as Numbers from "@monkeytype/util/numbers"; import { Config } from "../config/store"; import * as TestWords from "../test/test-words"; import { getUserAverage10 } from "../collections/results"; +import { configEvent } from "../events/config"; let averageWPM = 0; let averageAcc = 0; -let hasFetched = false; export async function update(): Promise { const mode2 = Misc.getMode2(Config, TestWords.currentQuote); @@ -17,11 +17,6 @@ export async function update(): Promise { averageWPM = Config.alwaysShowDecimalPlaces ? wpm : Math.round(wpm); averageAcc = Config.alwaysShowDecimalPlaces ? acc : Math.floor(acc); - hasFetched = true; -} - -export function hasData(): boolean { - return hasFetched; } export function getWPM(): number { @@ -31,3 +26,9 @@ export function getWPM(): number { export function getAcc(): number { return averageAcc; } + +configEvent.subscribe(({ key, newValue }) => { + if (key === "showAverage" && newValue !== "off") { + void update(); + } +}); diff --git a/frontend/src/ts/elements/modes-notice.ts b/frontend/src/ts/elements/modes-notice.ts index 6c622c53e1be..1315ef9a678c 100644 --- a/frontend/src/ts/elements/modes-notice.ts +++ b/frontend/src/ts/elements/modes-notice.ts @@ -183,9 +183,6 @@ export async function update(): Promise { } if (Config.showAverage !== "off") { - if (!Last10Average.hasData()) { - await Last10Average.update(); - } const avgWPM = Last10Average.getWPM(); const avgAcc = Last10Average.getAcc(); From 35af68290c7a0349c30f7d36ce67b612e494d84f Mon Sep 17 00:00:00 2001 From: d1rshan Date: Tue, 19 May 2026 21:12:58 +0530 Subject: [PATCH 3/3] final final fix --- frontend/src/ts/elements/last-10-average.ts | 7 ------- frontend/src/ts/elements/modes-notice.ts | 13 ++++++++++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/frontend/src/ts/elements/last-10-average.ts b/frontend/src/ts/elements/last-10-average.ts index 56e2dc997e96..a40c92ce8919 100644 --- a/frontend/src/ts/elements/last-10-average.ts +++ b/frontend/src/ts/elements/last-10-average.ts @@ -3,7 +3,6 @@ import * as Numbers from "@monkeytype/util/numbers"; import { Config } from "../config/store"; import * as TestWords from "../test/test-words"; import { getUserAverage10 } from "../collections/results"; -import { configEvent } from "../events/config"; let averageWPM = 0; let averageAcc = 0; @@ -26,9 +25,3 @@ export function getWPM(): number { export function getAcc(): number { return averageAcc; } - -configEvent.subscribe(({ key, newValue }) => { - if (key === "showAverage" && newValue !== "off") { - void update(); - } -}); diff --git a/frontend/src/ts/elements/modes-notice.ts b/frontend/src/ts/elements/modes-notice.ts index 1315ef9a678c..8b3dec0ef04f 100644 --- a/frontend/src/ts/elements/modes-notice.ts +++ b/frontend/src/ts/elements/modes-notice.ts @@ -19,6 +19,18 @@ import { getLoadedChallenge, } from "../states/test"; +configEvent.subscribe(({ key, newValue }) => { + if (key === "showAverage") { + if (newValue !== "off") { + void Last10Average.update().then(() => { + void update(); + }); + } else { + void update(); + } + } +}); + configEvent.subscribe(({ key }) => { const configKeys: ConfigEventKey[] = [ "difficulty", @@ -32,7 +44,6 @@ configEvent.subscribe(({ key }) => { "minBurst", "confidenceMode", "layout", - "showAverage", "showPb", "typingSpeedUnit", "quickRestart",