diff --git a/src/js/darkwire.js b/src/js/darkwire.js
index 2da5b18..b35ac59 100644
--- a/src/js/darkwire.js
+++ b/src/js/darkwire.js
@@ -216,7 +216,8 @@ export default class Darkwire {
if (bool) {
resolve({
username: username,
- message: decryptedMessage
+ message: decryptedMessage,
+ messageType: data.messageType
});
}
});
diff --git a/src/js/fileHandler.js b/src/js/fileHandler.js
index 4936edc..e00c9bb 100644
--- a/src/js/fileHandler.js
+++ b/src/js/fileHandler.js
@@ -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);
diff --git a/src/js/main.js b/src/js/main.js
index a1028aa..6a63fae 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -120,10 +120,19 @@ $(function() {
let $usernameDiv = $('')
.text(data.username)
.css('color', getUsernameColor(data.username));
- let $messageBodyDiv = $('')
- .html(data.message);
+ let $messageBodyDiv = $('');
+
+ 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 = $('')
.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);
+ }
});
});