From 40e977cc3c223a3087915f01287f4a3350965210 Mon Sep 17 00:00:00 2001 From: igorrCarvalho Date: Sat, 8 Jun 2024 23:41:40 -0300 Subject: [PATCH] Refactor: Improve code check to prevent bugs --- .../ShortcutsPage/EditShortcutButton/index.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/frontend/src/pages/SettingsPage/pages/ShortcutsPage/EditShortcutButton/index.tsx b/src/frontend/src/pages/SettingsPage/pages/ShortcutsPage/EditShortcutButton/index.tsx index 4780238cb..976df035a 100644 --- a/src/frontend/src/pages/SettingsPage/pages/ShortcutsPage/EditShortcutButton/index.tsx +++ b/src/frontend/src/pages/SettingsPage/pages/ShortcutsPage/EditShortcutButton/index.tsx @@ -123,13 +123,18 @@ export default function EditShortcutButton({ return `${oldKey.length > 0 ? toTitleCase(oldKey) : oldKey.toUpperCase()} + ${key.length > 0 ? toTitleCase(key) : key.toUpperCase()}`; } + function checkForKeys(keys: string, keyToCompare: string): boolean { + const keysArr = keys.split(" "); + let hasNewKey = false; + return keysArr.some( + (k) => k.toLowerCase().trim() === keyToCompare.toLowerCase().trim(), + ); + } + useEffect(() => { function onKeyDown(e: KeyboardEvent) { e.preventDefault(); let fixedKey = e.key; - if (key) { - if (key.toUpperCase().includes(e.key.toUpperCase())) return; - } if (e.key?.toLowerCase() === "control") { fixedKey = "Ctrl"; } @@ -139,8 +144,9 @@ export default function EditShortcutButton({ if (e.key?.toLowerCase() === " ") { fixedKey = "Space"; } - if (shortcutInitialValue?.toUpperCase().includes(fixedKey.toUpperCase())) - return; + if (key) { + if (checkForKeys(key, fixedKey)) return; + } setKey((oldKey) => getFixedCombination({ oldKey: oldKey!, key: fixedKey }), );