Files
cinny/src/client/event/hotkeys.js
T

47 lines
1.2 KiB
JavaScript
Raw Normal View History

import { openSearch, toggleRoomSettings } from '../action/navigation';
2021-12-11 10:50:34 +05:30
import navigation from '../state/navigation';
function listenKeyboard(event) {
2022-03-11 14:14:57 +05:30
// Ctrl/Cmd +
if (event.ctrlKey || event.metaKey) {
2021-12-11 10:50:34 +05:30
// k - for search Modal
if (event.keyCode === 75) {
event.preventDefault();
if (navigation.isRawModalVisible) return;
2021-12-11 10:50:34 +05:30
openSearch();
}
}
2021-12-22 20:18:32 +05:30
if (!event.ctrlKey && !event.altKey) {
if (navigation.isRawModalVisible) return;
2021-12-13 21:05:37 +05:30
if (['text', 'textarea'].includes(document.activeElement.type)) {
return;
}
// esc - close room settings panel
if (event.keyCode === 27 && navigation.isRoomSettings) {
toggleRoomSettings();
}
2021-12-22 20:18:32 +05:30
if ((event.keyCode !== 8 && event.keyCode < 48)
|| (event.keyCode >= 91 && event.keyCode <= 93)
|| (event.keyCode >= 112 && event.keyCode <= 183)) {
return;
}
// press any key to focus and type in message field
const msgTextarea = document.getElementById('message-textarea');
msgTextarea?.focus();
}
2021-12-11 10:50:34 +05:30
}
function initHotkeys() {
document.body.addEventListener('keydown', listenKeyboard);
}
function removeHotkeys() {
document.body.removeEventListener('keydown', listenKeyboard);
}
export { initHotkeys, removeHotkeys };