Files
Moonlight/Moonlight.Client/wwwroot/js/keyBinds.js

25 lines
810 B
JavaScript

window.moonCoreKeyBinds = {
storage: {},
registerHotkey: function (key, modifier, action, dotNetObjRef) {
const hotkeyListener = async (event) => {
if (event.code === key && (!modifier || event[modifier + 'Key'])) {
event.preventDefault();
await dotNetObjRef.invokeMethodAsync("OnHotkeyPressed", action);
}
};
this.storage[`${key}${modifier}`] = hotkeyListener;
window.addEventListener('keydown', hotkeyListener);
},
unregisterHotkey: function (key, modifier) {
const listenerKey = `${key}${modifier}`;
if (this.storage[listenerKey]) {
window.removeEventListener('keydown', this.storage[listenerKey]);
delete this.storage[listenerKey];
}
}
}