Răsfoiți Sursa

Use a `Set` instead of an array in a KeyboardHandler's member

The variable `triggers` is only used to check if in contains a particular
value. Given that the number of keyboard shortcuts is starting to be
significant, let's future-proof the performances and use a `Set` instead of an
`Array` instead.
jvoisin 2 ani în urmă
părinte
comite
d9d17f0d69
1 a modificat fișierele cu 3 adăugiri și 3 ștergeri
  1. 3 3
      internal/ui/static/js/keyboard_handler.js

+ 3 - 3
internal/ui/static/js/keyboard_handler.js

@@ -2,12 +2,12 @@ class KeyboardHandler {
     constructor() {
         this.queue = [];
         this.shortcuts = {};
-        this.triggers = [];
+        this.triggers = new Set();
     }
 
     on(combination, callback) {
         this.shortcuts[combination] = callback;
-        this.triggers.push(combination.split(" ")[0]);
+        this.triggers.add(combination.split(" ")[0]);
     }
 
     listen() {
@@ -48,7 +48,7 @@ class KeyboardHandler {
     isEventIgnored(event, key) {
         return event.target.tagName === "INPUT" ||
             event.target.tagName === "TEXTAREA" ||
-            (this.queue.length < 1 && !this.triggers.includes(key));
+            (this.queue.length < 1 && !this.triggers.has(key));
     }
 
     isModifierKeyDown(event) {