From 6af0cd5b5c81a331eb1dc00a4c3f582e31e7e1ae Mon Sep 17 00:00:00 2001 From: Julien Voisin Date: Wed, 15 Jan 2025 04:50:21 +0000 Subject: [PATCH] refactor(js): simplify a bit `keyboard_handler.js` - Mark two methods as static - Use a `switch-case` construct instead of an Object and a loop. --- internal/ui/static/js/keyboard_handler.js | 29 +++++++++-------------- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/internal/ui/static/js/keyboard_handler.js b/internal/ui/static/js/keyboard_handler.js index eb5b0548..8bd76f2c 100644 --- a/internal/ui/static/js/keyboard_handler.js +++ b/internal/ui/static/js/keyboard_handler.js @@ -12,8 +12,8 @@ class KeyboardHandler { listen() { document.onkeydown = (event) => { - const key = this.getKey(event); - if (this.isEventIgnored(event, key) || this.isModifierKeyDown(event)) { + const key = KeyboardHandler.getKey(event); + if (this.isEventIgnored(event, key) || KeyboardHandler.isModifierKeyDown(event)) { return; } @@ -51,25 +51,18 @@ class KeyboardHandler { (this.queue.length < 1 && !this.triggers.has(key)); } - isModifierKeyDown(event) { + static isModifierKeyDown(event) { return event.getModifierState("Control") || event.getModifierState("Alt") || event.getModifierState("Meta"); } - getKey(event) { - const mapping = { - 'Esc': 'Escape', - 'Up': 'ArrowUp', - 'Down': 'ArrowDown', - 'Left': 'ArrowLeft', - 'Right': 'ArrowRight' - }; - - for (const key in mapping) { - if (mapping.hasOwnProperty(key) && key === event.key) { - return mapping[key]; - } + static getKey(event) { + switch (event.key) { + case 'Esc': return 'Escape'; + case 'Up': return 'ArrowUp'; + case 'Down': return 'ArrowDown'; + case 'Left': return 'ArrowLeft'; + case 'Right': return 'ArrowRight'; + default: return event.key; } - - return event.key; } }