From 8c14bea13918bea070df1e9ac1ea05a0f7867024 Mon Sep 17 00:00:00 2001 From: Nad Alaba <37968805+nadalaba@users.noreply.github.com> Date: Thu, 9 Apr 2026 19:32:47 +0300 Subject: [PATCH 1/2] fix double lineJump in zen mode --- frontend/src/ts/test/test-ui.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/src/ts/test/test-ui.ts b/frontend/src/ts/test/test-ui.ts index 71e3ca0fa80c..9dc4bd1cf334 100644 --- a/frontend/src/ts/test/test-ui.ts +++ b/frontend/src/ts/test/test-ui.ts @@ -80,6 +80,7 @@ const wordsWrapperEl = qsr(".pageTest #wordsWrapper"); const resultWordsHistoryEl = qsr(".pageTest #resultWordsHistory"); export let activeWordTop = 0; +export let wordTopBeforeLineJump = 0; export let activeWordHeight = 0; export let lineTransition = false; export let currentTestLine = 0; @@ -902,7 +903,14 @@ export async function updateWordLetters({ if (!Config.showAllLines) { const wordTopAfterUpdate = wordAtIndex.getOffsetTop(); if (wordTopAfterUpdate > activeWordTop) { - await lineJump(activeWordTop, true); + let jump = false; + if (!lineTransition) { + wordTopBeforeLineJump = wordTopAfterUpdate; + jump = true; + } else if (wordTopAfterUpdate > wordTopBeforeLineJump) { + jump = true; + } + if (jump) await lineJump(activeWordTop); } } } From 03ea6456c4efd0936cff5deb92286d86d8db3950 Mon Sep 17 00:00:00 2001 From: Nad Alaba <37968805+nadalaba@users.noreply.github.com> Date: Thu, 9 Apr 2026 20:19:53 +0300 Subject: [PATCH 2/2] remove unneeded export --- frontend/src/ts/test/test-ui.ts | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/frontend/src/ts/test/test-ui.ts b/frontend/src/ts/test/test-ui.ts index 9dc4bd1cf334..a8b5e2b456e9 100644 --- a/frontend/src/ts/test/test-ui.ts +++ b/frontend/src/ts/test/test-ui.ts @@ -80,10 +80,10 @@ const wordsWrapperEl = qsr(".pageTest #wordsWrapper"); const resultWordsHistoryEl = qsr(".pageTest #resultWordsHistory"); export let activeWordTop = 0; -export let wordTopBeforeLineJump = 0; export let activeWordHeight = 0; -export let lineTransition = false; -export let currentTestLine = 0; +let wordTopBeforeLineJump = 0; +let lineTransition = false; +let currentTestLine = 0; export let resultCalculating = false; export function setResultCalculating(val: boolean): void { @@ -1171,19 +1171,13 @@ function removeTestElements(lastElementIndexToRemove: number): void { let currentLinesJumping = 0; -export async function lineJump( - currentTop: number, - force = false, -): Promise { +async function lineJump(currentTop: number, force = false): Promise { //last word of the line if (currentTestLine > 0 || force) { const hideBound = currentTop; const activeWordEl = getActiveWordElement(); - if (!activeWordEl) { - // resolve(); - return; - } + if (!activeWordEl) return; // index of the active word in all #words.children // (which contains .word/.newline/.beforeNewline/.afterNewline elements)