From be4649c900e47cc2e94ba57ab358970d3e414e47 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 6 Jan 2026 00:50:46 +0800 Subject: [PATCH 1/4] docs: fix typo in funbox JSDoc (@mpodhaisky) (#7306) Fixes a minor typo in a JSDoc comment. No functional changes. --- frontend/src/ts/test/funbox/list.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/ts/test/funbox/list.ts b/frontend/src/ts/test/funbox/list.ts index 44ff56ef2d37..88220d8badb8 100644 --- a/frontend/src/ts/test/funbox/list.ts +++ b/frontend/src/ts/test/funbox/list.ts @@ -121,7 +121,7 @@ export function getActiveFunboxesWithFunction( } /** - * Check if there is an active funbox implemenging the given function + * Check if there is an active funbox implementing the given function * @param functionName function name * @returns */ From d09969f1ec0d3fb1c161ff271612eb64ddc7e580 Mon Sep 17 00:00:00 2001 From: Leonabcd123 <156839416+Leonabcd123@users.noreply.github.com> Date: Mon, 5 Jan 2026 18:54:06 +0200 Subject: [PATCH 2/4] fix(tags): selected tags not being highlighted in test result (@Leonabcd123) (#7312) ### Description Update `data-active-tag-ids` instead of `active-tag-ids`, extract updating part from if statement. Fixes the following bug: - Create a tag - Complete a test - Click on the edit tags button - Click on the newly created tag - Click on the edit tags button again - The tag won't be highlighted in yellow Co-authored-by: Jack --- frontend/src/ts/test/result.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/src/ts/test/result.ts b/frontend/src/ts/test/result.ts index 24905cad853b..ec2b9f068179 100644 --- a/frontend/src/ts/test/result.ts +++ b/frontend/src/ts/test/result.ts @@ -1262,11 +1262,12 @@ export function updateTagsAfterEdit( // $(`.pageTest #result .tags .bottom`).html(tagNames.join("
")); $(`.pageTest #result .tags .bottom`).append(html); - $(`.pageTest #result .tags .top .editTagsButton`).attr( - "active-tag-ids", - tagIds.join(","), - ); } + + $(`.pageTest #result .tags .top .editTagsButton`).attr( + "data-active-tag-ids", + tagIds.join(","), + ); } $(".pageTest #result .chart .chartLegend button").on("click", (event) => { From 785619c5e2f2794f30bfaad63790246a15c9b06d Mon Sep 17 00:00:00 2001 From: Rizwan Mustafa Khan Date: Mon, 5 Jan 2026 21:54:22 +0500 Subject: [PATCH 3/4] fix: tiny bug of using wrong port for creating app (@rizwanmustafa) (#7309) ### Description Fix a tiny bug of not using the local variable passed to the function. --- backend/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/server.ts b/backend/src/server.ts index fcfc274f5069..fc66651b3767 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -89,7 +89,7 @@ async function bootServer(port: number): Promise { return process.exit(1); } - return app.listen(PORT, () => { + return app.listen(port, () => { Logger.success(`API server listening on port ${port}`); }); } From 2dc99e9e7047f610c9cd942fd10cd7ab75f640e9 Mon Sep 17 00:00:00 2001 From: wRadion Date: Mon, 5 Jan 2026 18:00:13 +0100 Subject: [PATCH 4/4] fix(friendlist): handle legacy pbs in friendlist frontend (show less details) (@wradion) (#7296) ### Description Show less details for legacy PBs in the friendlist. ### Checks - [x] Check if any open issues are related to this PR; if so, be sure to tag them below. - [x] Make sure the PR title follows the Conventional Commits standard. (https://www.conventionalcommits.org for more info) - [x] Make sure to include your GitHub username prefixed with @ inside parentheses at the end of the PR title. --------- Co-authored-by: Miodec <13181393+Miodec@users.noreply.github.com> Co-authored-by: Miodec --- frontend/src/ts/pages/friends.ts | 31 +++++++++++++++++++++---------- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/frontend/src/ts/pages/friends.ts b/frontend/src/ts/pages/friends.ts index e192fee44dda..d4806c893ebd 100644 --- a/frontend/src/ts/pages/friends.ts +++ b/frontend/src/ts/pages/friends.ts @@ -181,10 +181,10 @@ function updatePendingConnections(): void { + + @@ -304,7 +304,7 @@ function buildFriendRow(entry: Friend): HTMLTableRowElement { entry.streak?.maxLength, "longest streak", )}" data-balloon-pos="up"> - ${formatStreak(entry.streak?.length)} + ${formatStreak(entry.streak?.length)} ${top60?.acc ?? "-"} ${actions} - + `; @@ -367,14 +367,25 @@ function formatPb(entry?: PersonalBest): details: "", }; - result.details = [ + const details = [ `${getLanguageDisplayString(entry.language)}`, `${result.wpm} wpm`, - `${result.acc} acc`, - `${result.raw} raw`, - `${result.con} con`, - `${dateFormat(entry.timestamp, "dd MMM yyyy")}`, - ].join("\n"); + ]; + + if (isSafeNumber(entry.acc)) { + details.push(`${result.acc} acc`); + } + if (isSafeNumber(entry.raw)) { + details.push(`${result.raw} raw`); + } + if (isSafeNumber(entry.consistency)) { + details.push(`${result.con} con`); + } + if (isSafeNumber(entry.timestamp)) { + details.push(`${dateFormat(entry.timestamp, "dd MMM yyyy")}`); + } + + result.details = details.join("\n"); return result; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ad23c2f832de..50c69e54238a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3800,8 +3800,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.9.11: - resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} + baseline-browser-mapping@2.9.10: + resolution: {integrity: sha512-2VIKvDx8Z1a9rTB2eCkdPE5nSe28XnA+qivGnWHoB40hMMt/h1hSz0960Zqsn6ZyxWXUie0EBdElKv8may20AA==} hasBin: true basic-auth-connect@1.0.0: @@ -3999,8 +3999,8 @@ packages: caniuse-lite@1.0.30001715: resolution: {integrity: sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==} - caniuse-lite@1.0.30001762: - resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} + caniuse-lite@1.0.30001761: + resolution: {integrity: sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==} canvas-confetti@1.5.1: resolution: {integrity: sha512-Ncz+oZJP6OvY7ti4E1slxVlyAV/3g7H7oQtcCDXgwGgARxPnwYY9PW5Oe+I8uvspYNtuHviAdgA0LfcKFWJfpg==} @@ -12997,7 +12997,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.9.11: {} + baseline-browser-mapping@2.9.10: {} basic-auth-connect@1.0.0: {} @@ -13134,8 +13134,8 @@ snapshots: browserslist@4.28.0: dependencies: - baseline-browser-mapping: 2.9.11 - caniuse-lite: 1.0.30001762 + baseline-browser-mapping: 2.9.10 + caniuse-lite: 1.0.30001761 electron-to-chromium: 1.5.267 node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.0) @@ -13263,7 +13263,7 @@ snapshots: caniuse-lite@1.0.30001715: {} - caniuse-lite@1.0.30001762: {} + caniuse-lite@1.0.30001761: {} canvas-confetti@1.5.1: {}