Files
Undecked/Frontend/pages/home/ts/KeyBoardHandler.ts
2023-08-29 19:55:48 +02:00

58 lines
1.7 KiB
TypeScript

window.addEventListener('keydown', (ev: KeyboardEvent) => {
if (document.activeElement && document.activeElement.nodeName != 'INPUT') {
if ((isWin() && ev.ctrlKey) || (isMac() && ev.metaKey)) {
switch (ev.key) {
case 'c':
ev.preventDefault();
if (PageHandler.currentPageID && KeyHandler.selected.length == 1) {
UndeckedClipboard.copyKey(
parseInt(KeyHandler.selected[0].split(',')[0]),
parseInt(KeyHandler.selected[0].split(',')[1])
);
}
break;
case 'x':
ev.preventDefault();
if (PageHandler.currentPageID && KeyHandler.selected.length == 1) {
UndeckedClipboard.cutKey(
parseInt(KeyHandler.selected[0].split(',')[0]),
parseInt(KeyHandler.selected[0].split(',')[1])
);
}
break;
case 'v':
ev.preventDefault();
if (PageHandler.currentPageID && KeyHandler.selected.length == 1) {
UndeckedClipboard.pasteKey(
parseInt(KeyHandler.selected[0].split(',')[0]),
parseInt(KeyHandler.selected[0].split(',')[1])
);
}
break;
case 'g':
ev.preventDefault();
if (PageHandler.currentPageID && KeyHandler.selected.length == 1) {
UndeckedClipboard.copyGhostKey(
parseInt(KeyHandler.selected[0].split(',')[0]),
parseInt(KeyHandler.selected[0].split(',')[1])
);
}
break;
}
} else {
switch (ev.key) {
case 'Delete':
var x = parseInt(KeyHandler.selected[0].split(',')[0]);
var y = parseInt(KeyHandler.selected[0].split(',')[1]);
socket.emit('page', 'operation', 'delete', PageHandler.currentPageID, x, y);
Editor.close();
KeyHandler.select(String(x), String(y));
break;
}
}
}
});