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 }