diff --git a/frontend/src/ts/input/handlers/insert-text.ts b/frontend/src/ts/input/handlers/insert-text.ts index b3d2559e2..e7690ba09 100644 --- a/frontend/src/ts/input/handlers/insert-text.ts +++ b/frontend/src/ts/input/handlers/insert-text.ts @@ -135,7 +135,10 @@ export async function onInsertText(options: OnInsertTextParams): Promise { // is char correct const funboxCorrect = findSingleActiveFunboxWithFunction( "isCharCorrect" - )?.functions.isCharCorrect(data, currentWord[inputValue.length] ?? ""); + )?.functions.isCharCorrect( + data, + currentWord[(testInput + data).length - 1] ?? "" + ); const correct = funboxCorrect ?? isCharCorrect({ diff --git a/frontend/src/ts/test/funbox/funbox-functions.ts b/frontend/src/ts/test/funbox/funbox-functions.ts index 2b66718af..d26512871 100644 --- a/frontend/src/ts/test/funbox/funbox-functions.ts +++ b/frontend/src/ts/test/funbox/funbox-functions.ts @@ -257,25 +257,34 @@ const list: Partial> = { }, isCharCorrect(char: string, originalChar: string): boolean { if ( - (char === "a" || char === "ArrowLeft" || char === "j") && + (char === "a" || + char === "ArrowLeft" || + char === "j" || + char === "←") && originalChar === "←" ) { return true; } if ( - (char === "s" || char === "ArrowDown" || char === "k") && + (char === "s" || + char === "ArrowDown" || + char === "k" || + char === "↓") && originalChar === "↓" ) { return true; } if ( - (char === "w" || char === "ArrowUp" || char === "i") && + (char === "w" || char === "ArrowUp" || char === "i" || char === "↑") && originalChar === "↑" ) { return true; } if ( - (char === "d" || char === "ArrowRight" || char === "l") && + (char === "d" || + char === "ArrowRight" || + char === "l" || + char === "→") && originalChar === "→" ) { return true;