Merge pull request #28 from seripap/feature/cmdk

CMD+K
This commit is contained in:
Alan Friedman 2016-02-27 10:39:20 -05:00
commit fe148efd6f
3 changed files with 45 additions and 16 deletions

View File

@ -20,6 +20,11 @@ export default class Chat {
this.bindEvents();
}
clear() {
let chatArea = $('.messages');
return chatArea.fadeOut(200, () => { chatArea.empty().show(); });
}
// Log a message
log(message, options) {
let html = options && options.html === true || false;
@ -238,6 +243,15 @@ export default class Chat {
console.log(err);
});
}
}, {
command: 'clear',
description: 'Clears the chat screen',
paramaters: [],
multiple: true,
usage: '/clear',
action: () => {
this.clear();
}
}];
const color = () => {

View File

@ -13,7 +13,6 @@ $(function() {
const darkwire = new Darkwire();
const cryptoUtil = new CryptoUtil();
let $window = $(window);
let $participants = $('#participants');
let roomId = window.location.pathname.length ? window.location.pathname : null;
@ -67,19 +66,6 @@ $(function() {
return sanitized;
}
// Keyboard events
$window.keydown(function(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();
}
});
// Select message input when closing modal
$('.modal').on('hidden.bs.modal', function(e) {
chat.inputMessage.focus();
@ -198,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);
@ -220,7 +206,7 @@ $(function() {
}).catch((err) => {
console.log(err);
});
}
};
window.triggerFileTransfer = function(context) {
const fileId = context.getAttribute('data-file');

View File

@ -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 = [];
};
}
}