github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/modifiers/keyboard-shortcut.js (about)

     1  import { inject as service } from '@ember/service';
     2  import Modifier from 'ember-modifier';
     3  import { registerDestructor } from '@ember/destroyable';
     4  
     5  export default class KeyboardShortcutModifier extends Modifier {
     6    @service keyboard;
     7    @service router;
     8  
     9    modify(
    10      element,
    11      _positional,
    12      {
    13        label,
    14        pattern = '',
    15        action = () => {},
    16        menuLevel = false,
    17        enumerated = false,
    18        exclusive = false,
    19      }
    20    ) {
    21      let commands = [
    22        {
    23          label,
    24          action,
    25          pattern,
    26          element,
    27          menuLevel,
    28          enumerated,
    29          exclusive,
    30        },
    31      ];
    32  
    33      this.keyboard.addCommands(commands);
    34      registerDestructor(this, () => {
    35        this.keyboard.removeCommands(commands);
    36      });
    37    }
    38  }