From 00fbfb0531141cbb93642ea94d02ef82f7c17157 Mon Sep 17 00:00:00 2001 From: Abubakrsiddik <106428934+Positiveoo1@users.noreply.github.com> Date: Sat, 4 Jul 2026 13:51:43 +0200 Subject: [PATCH] fix: caret error on incorrect final word (@Positiveoo1) (#8191) Closes #8180 !nuf --- frontend/src/ts/elements/caret.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/frontend/src/ts/elements/caret.ts b/frontend/src/ts/elements/caret.ts index 8d54c3f3d4dc..2b0786fe1964 100644 --- a/frontend/src/ts/elements/caret.ts +++ b/frontend/src/ts/elements/caret.ts @@ -395,14 +395,21 @@ export class Caret { isDirectionReversed: boolean; }): { left: number; top: number; width: number } { const letters = options.word?.qsa("letter"); - let letter; - if (!letters?.length || !(letter = letters[options.letterIndex])) { - // maybe we should return null here instead of throwing + + if (letters.length === 0) { throw new Error( "Caret getTargetPositionAndWidth: no letters found in word", ); } + let letter = letters[options.letterIndex] ?? letters[letters.length - 1]; + + if (!letter) { + throw new Error( + `Caret getTargetPositionAndWidth: letter not found for index ${options.letterIndex}`, + ); + } + if (caretDebug) { if (this.id === "paceCaret") { for (const l of document.querySelectorAll(".word letter")) {