From fd177c9ed408891d6b2cc4f86c15a965527f3dfd Mon Sep 17 00:00:00 2001 From: Seif Soliman Date: Sun, 21 Dec 2025 12:50:10 +0200 Subject: [PATCH] chore: TypeError when deleting in zen (@byseif21) (#7282) * fix error from race condition `Cannot read properties of null (reading 'remove')` when deletion in zen mode, added null check. The active word could already be removed when the debounced update runs, which caused a null error --------- Co-authored-by: Jack --- frontend/src/ts/test/test-ui.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/frontend/src/ts/test/test-ui.ts b/frontend/src/ts/test/test-ui.ts index 4398a2aff..86dba54a5 100644 --- a/frontend/src/ts/test/test-ui.ts +++ b/frontend/src/ts/test/test-ui.ts @@ -133,18 +133,17 @@ export function updateActiveElement( let previousActiveWordTop: number | null = null; if (initial === undefined) { - const previousActiveWord = wordsEl.querySelector( - ".active", - ) as HTMLElement; - if (direction === "forward") { - previousActiveWord.classList.add("typed"); - } else if (direction === "back") { - if (Config.mode === "zen") { - previousActiveWord.remove(); + const previousActiveWord = wordsEl.querySelector(".active"); + // in zen mode, because of the animation frame, previousActiveWord will be removed at this point, so check for null + if (previousActiveWord !== null) { + if (direction === "forward") { + previousActiveWord.classList.add("typed"); + } else if (direction === "back") { + // } + previousActiveWord.classList.remove("active"); + previousActiveWordTop = previousActiveWord.offsetTop; } - previousActiveWord.classList.remove("active"); - previousActiveWordTop = previousActiveWord.offsetTop; } const newActiveWord = getActiveWordElement();