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 <jack@monkeytype.com>
This commit is contained in:
Seif Soliman 2025-12-21 12:50:10 +02:00 committed by GitHub
parent a1240d3d7e
commit fd177c9ed4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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<HTMLElement>(".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();