keyboardShortcuts.js 593 B

1234567891011121314151617181920212223242526272829303132
  1. const shortcuts = {};
  2. let _shortcuts = [];
  3. const lib = {
  4. handleKeyDown(keyCode, shift, ctrl) {
  5. _shortcuts.forEach(shortcut => {
  6. if (
  7. shortcut.keyCode === keyCode &&
  8. shortcut.shift === shift &&
  9. shortcut.ctrl === ctrl
  10. )
  11. shortcut.handler();
  12. });
  13. },
  14. registerShortcut(name, shortcut) {
  15. shortcuts[name] = shortcut;
  16. lib.remakeShortcutsArray();
  17. },
  18. unregisterShortcut: name => {
  19. delete shortcuts[name];
  20. lib.remakeShortcutsArray();
  21. },
  22. remakeShortcutsArray: () => {
  23. _shortcuts = Object.keys(shortcuts).map(key => shortcuts[key]);
  24. }
  25. };
  26. export default lib;