From 668f2612a4157ff5fa30d10e552502e8b6a4a75f Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Mon, 26 Feb 2024 20:57:09 +0100 Subject: [PATCH] fix: PB pace caret is always zero (#5143) * fix: PB pace caret is always zero * cleanup --- frontend/src/ts/db.ts | 43 +++++++++++++++---------------------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/frontend/src/ts/db.ts b/frontend/src/ts/db.ts index f73751450..e5a108abd 100644 --- a/frontend/src/ts/db.ts +++ b/frontend/src/ts/db.ts @@ -600,37 +600,24 @@ export async function getLocalPB( if (!funboxes.every((f) => f.canGetPb)) { return 0; } + if (dbSnapshot === null || dbSnapshot?.personalBests === null) return 0; - function cont(): number { - let ret = 0; - try { - if (!dbSnapshot?.personalBests) return ret; + const bestsByMode = dbSnapshot?.personalBests[mode][ + mode2 + ] as SharedTypes.PersonalBest[]; - ( - dbSnapshot.personalBests[mode][ - mode2 - ] as unknown as SharedTypes.PersonalBest[] - ).forEach((pb) => { - if ( - pb.punctuation === punctuation && - pb.numbers === numbers && - pb.difficulty === difficulty && - pb.language === language && - (pb.lazyMode === lazyMode || (pb.lazyMode === undefined && !lazyMode)) - ) { - ret = pb.wpm; - } - }); + if (bestsByMode === undefined) return 0; - return ret; - } catch (e) { - return ret; - } - } - - const retval = dbSnapshot === null ? 0 : cont(); - - return retval; + return ( + bestsByMode.find( + (pb) => + (pb.punctuation ?? false) === punctuation && + (pb.numbers ?? false) === numbers && + pb.difficulty === difficulty && + pb.language === language && + (pb.lazyMode ?? false) === lazyMode + )?.wpm ?? 0 + ); } export async function saveLocalPB(