mirror of
https://github.com/darkwire/darkwire.io.git
synced 2025-07-18 18:54:52 +00:00
commit
fe148efd6f
@ -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 = () => {
|
||||
|
@ -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');
|
||||
|
@ -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 = [];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user