Sending file test, currently working for images only

This commit is contained in:
Dan Seripap 2016-02-19 13:35:44 -05:00
parent e75f48ef88
commit c1b902a5bf
3 changed files with 28 additions and 5 deletions

View File

@ -216,7 +216,8 @@ export default class Darkwire {
if (bool) {
resolve({
username: username,
message: decryptedMessage
message: decryptedMessage,
messageType: data.messageType
});
}
});

View File

@ -1,6 +1,6 @@
export default class FileHandler {
constructor(darkwire, socket) {
if (window.File && window.FileReader && window.FileList && window.Blob && window.btoa) {
if (window.File && window.FileReader && window.FileList && window.Blob && window.btoa && window.atob) {
this._isSupported = true;
this.darkwire = darkwire;
this.socket = socket;
@ -47,6 +47,10 @@ export default class FileHandler {
return false;
}
decodeFile(base64) {
return window.atob(base64);
}
listen() {
// browser API
document.getElementById('fileInput').addEventListener('change', jQuery.proxy(this.encodeFile, this), false);

View File

@ -120,10 +120,19 @@ $(function() {
let $usernameDiv = $('<span class="username"/>')
.text(data.username)
.css('color', getUsernameColor(data.username));
let $messageBodyDiv = $('<span class="messageBody">')
.html(data.message);
let $messageBodyDiv = $('<span class="messageBody">');
if (options.file) {
let image = new Image();
image.src = `data:image/png;base64,${data.message}`;
$messageBodyDiv.html(image);
} else {
$messageBodyDiv.html(data.message);
}
let typingClass = data.typing ? 'typing' : '';
let $messageDiv = $('<li class="message"/>')
.data('username', data.username)
.addClass(typingClass)
@ -293,7 +302,16 @@ $(function() {
windowHandler.notifyFavicon();
darkwire.audio.play();
}
addChatMessage(data);
if (data.messageType === 'file') {
// let file = windowHandler.fileHandler.decodeFile(data.message);
// let chatMessage = {
// username: data.username,
// message: file
// }
addChatMessage(data, {file: true})
} else {
addChatMessage(data);
}
});
});