From 9c45c52337785c5e03261f1e933666fd2c13e544 Mon Sep 17 00:00:00 2001 From: Leonabcd123 <156839416+Leonabcd123@users.noreply.github.com> Date: Wed, 24 Jun 2026 12:26:23 +0300 Subject: [PATCH] refactor(funbox): remove isCharCorrect function --- frontend/src/ts/input/handlers/insert-text.ts | 28 ++++---------- .../src/ts/test/funbox/funbox-functions.ts | 37 ------------------- packages/funbox/src/list.ts | 1 - packages/funbox/src/validation.ts | 5 --- 4 files changed, 8 insertions(+), 63 deletions(-) diff --git a/frontend/src/ts/input/handlers/insert-text.ts b/frontend/src/ts/input/handlers/insert-text.ts index c5ffd32073f2..b5a9b4f13a0a 100644 --- a/frontend/src/ts/input/handlers/insert-text.ts +++ b/frontend/src/ts/input/handlers/insert-text.ts @@ -18,10 +18,7 @@ import { } from "../../utils/strings"; import * as TestState from "../../test/test-state"; import * as TestLogic from "../../test/test-logic"; -import { - findSingleActiveFunboxWithFunction, - isFunboxActiveWithProperty, -} from "../../test/funbox/list"; +import { isFunboxActiveWithProperty } from "../../test/funbox/list"; import { Config } from "../../config/store"; import { flash } from "../../events/keymap"; import * as WeakSpot from "../../test/weak-spot"; @@ -160,20 +157,12 @@ export async function onInsertText(options: OnInsertTextParams): Promise { Config.oppositeShiftMode === "off" ? null : isCorrectShiftUsed(); // is char correct - const funboxCorrect = findSingleActiveFunboxWithFunction( - "isCharCorrect", - )?.functions.isCharCorrect( + const charCorrect = isCharCorrect({ data, - currentWord[(testInput + data).length - 1] ?? "", - ); - const charCorrect = - funboxCorrect ?? - isCharCorrect({ - data, - inputValue: testInput, - targetWord: currentWord, - correctShiftUsed, - }); + inputValue: testInput, + targetWord: currentWord, + correctShiftUsed, + }); // word navigation check const noSpaceForce = @@ -186,13 +175,12 @@ export async function onInsertText(options: OnInsertTextParams): Promise { // when moving to the next word, correctness is word-level (a correct word-completing // space has charCorrect === false, so charCorrect can't be used below) const correct = goingToNextWord - ? (funboxCorrect ?? - isWordCorrect({ + ? isWordCorrect({ data, inputValue: testInput, targetWord: currentWord, correctShiftUsed, - })) + }) : charCorrect; // handing cases where last char needs to be removed diff --git a/frontend/src/ts/test/funbox/funbox-functions.ts b/frontend/src/ts/test/funbox/funbox-functions.ts index 28e4f8b834fb..73d6422c6cfb 100644 --- a/frontend/src/ts/test/funbox/funbox-functions.ts +++ b/frontend/src/ts/test/funbox/funbox-functions.ts @@ -42,7 +42,6 @@ export type FunboxFunctions = { pullSection?: (language?: Language) => Promise; handleSpace?: () => void; getEmulatedChar?: (event: KeyboardEvent) => string | null; - isCharCorrect?: (char: string, originalChar: string) => boolean; handleKeydown?: (event: KeyboardEvent) => Promise; getResultContent?: () => string; start?: () => void; @@ -261,42 +260,6 @@ const list: Partial> = { } return null; }, - isCharCorrect(char: string, originalChar: string): boolean { - if ( - (char === "a" || - char === "ArrowLeft" || - char === "j" || - char === "←") && - originalChar === "←" - ) { - return true; - } - if ( - (char === "s" || - char === "ArrowDown" || - char === "k" || - char === "↓") && - originalChar === "↓" - ) { - return true; - } - if ( - (char === "w" || char === "ArrowUp" || char === "i" || char === "↑") && - originalChar === "↑" - ) { - return true; - } - if ( - (char === "d" || - char === "ArrowRight" || - char === "l" || - char === "→") && - originalChar === "→" - ) { - return true; - } - return false; - }, getWordHtml(char: string, letterTag?: boolean): string { let retval = ""; if (char === "↑") { diff --git a/packages/funbox/src/list.ts b/packages/funbox/src/list.ts index b5cb5a2589d0..866decc7d7e7 100644 --- a/packages/funbox/src/list.ts +++ b/packages/funbox/src/list.ts @@ -108,7 +108,6 @@ const list: Record = { "getWord", "rememberSettings", "getEmulatedChar", - "isCharCorrect", "getWordHtml", ], name: "arrows", diff --git a/packages/funbox/src/validation.ts b/packages/funbox/src/validation.ts index 0ad0335d372b..95374ea1412c 100644 --- a/packages/funbox/src/validation.ts +++ b/packages/funbox/src/validation.ts @@ -178,10 +178,6 @@ export function checkCompatibility( funboxesToCheck.filter((f) => f.frontendFunctions?.includes("getEmulatedChar"), ).length <= 1; - const oneCharCheckerMax = - funboxesToCheck.filter((f) => - f.frontendFunctions?.includes("isCharCorrect"), - ).length <= 1; const oneCharReplacerMax = funboxesToCheck.filter((f) => f.frontendFunctions?.includes("getWordHtml")) .length <= 1; @@ -240,7 +236,6 @@ export function checkCompatibility( oneToPushOrPullSectionMax && onePunctuateWordMax && oneGetEmulatedCharMax && - oneCharCheckerMax && oneCharReplacerMax && oneChangesCapitalisationMax && oneCssModificationPerElement &&