diff --git a/src/js/main.js b/src/js/main.js index 5c9d0c9..dcef7a3 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -13,9 +13,7 @@ $(function() { const darkwire = new Darkwire(); const cryptoUtil = new CryptoUtil(); - let $window = $(window); let $participants = $('#participants'); - let keyMapping = []; let roomId = window.location.pathname.length ? window.location.pathname : null; @@ -68,25 +66,6 @@ $(function() { return sanitized; } - // Keyboard events - $window.keydown((event) => { - // When the client hits ENTER on their keyboard and chat message input is focused - if (event.which === 13 && !event.shiftKey && $('.inputMessage').is(':focus')) { - handleMessageSending(); - socket.emit('stop typing'); - chat.typing = false; - event.preventDefault(); - } else { - keyMapping[event.keyCode] = event.type === 'keydown'; - } - - }).keyup((event) => { - if ((keyMapping[17] || keyMapping[91] || keyMapping[93]) && keyMapping[75]) { - chat.clear(); - } - keyMapping = []; - }); - // Select message input when closing modal $('.modal').on('hidden.bs.modal', function(e) { chat.inputMessage.focus(); @@ -205,7 +184,7 @@ $(function() { darkwire.audio.soundEnabled = state; }); - function handleMessageSending() { + window.handleMessageSending = function() { let message = chat.inputMessage; let cleanedMessage = cleanInput(message.val()); let slashCommand = chat.parseCommand(cleanedMessage); @@ -227,7 +206,7 @@ $(function() { }).catch((err) => { console.log(err); }); - } + }; window.triggerFileTransfer = function(context) { const fileId = context.getAttribute('data-file'); diff --git a/src/js/window.js b/src/js/window.js index 02c0854..99992d6 100644 --- a/src/js/window.js +++ b/src/js/window.js @@ -4,6 +4,9 @@ export default class WindowHandler { constructor(darkwire, socket, chat) { this._isActive = false; this.fileHandler = new FileHandler(darkwire, socket, chat); + this.socket = socket; + this.chat = chat; + this.keyMapping = []; this.newMessages = 0; this.favicon = new Favico({ @@ -52,6 +55,32 @@ export default class WindowHandler { this._isActive = false; }; + // Keyboard events + window.onkeydown = (event) => { + // When the client hits ENTER on their keyboard and chat message input is focused + if (event.which === 13 && !event.shiftKey && $('.inputMessage').is(':focus')) { + handleMessageSending(); + this.socket.emit('stop typing'); + this.chat.typing = false; + event.preventDefault(); + } else { + this.keyMapping[event.keyCode] = event.type === 'keydown'; + } + }; + + window.onkeyup = (event) => { + /** + * 17: CTRL + * 91: Left CMD + * 93: Right CMD + * 75: K + */ + if ((this.keyMapping[17] || this.keyMapping[91] || this.keyMapping[93]) && this.keyMapping[75]) { + this.chat.clear(); + } + this.keyMapping = []; + }; + } }