Skip to content

Commit da4e8a9

Browse files
koray-erenJeff
authored andcommitted
format messages with attachments
1 parent 57793ba commit da4e8a9

File tree

1 file changed

+42
-8
lines changed

1 file changed

+42
-8
lines changed

sogs/static/view_room.js

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,19 @@ const makebuffer = (raw) => {
1010
realLength--;
1111
return b.subarray(0, realLength);
1212
};
13+
14+
function formatBytes(bytes, decimals = 2) {
15+
if (bytes === 0) return '0 Bytes';
16+
17+
const k = 1024;
18+
const dm = decimals < 0 ? 0 : decimals;
19+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
20+
21+
const i = Math.floor(Math.log(bytes) / Math.log(k));
22+
23+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
24+
}
25+
1326
const setup = async () => {
1427
const elem = document.getElementById("messages");
1528
if(elem)
@@ -53,14 +66,15 @@ const setup = async () => {
5366
}
5467

5568
const plain = Message.decode(data).dataMessage;
56-
console.log("VERIFY:")
57-
console.log(data)
58-
console.log(Message.decode(data))
59-
console.log(Message.decode(data).dataMessage)
60-
console.log(Message)
61-
console.log(Message.verify)
62-
console.log(Message.verify(data))
63-
// if msg is a reply
69+
// console.log("VERIFY:")
70+
// console.log(data)
71+
// console.log(Message.decode(data))
72+
// console.log(Message.decode(data).dataMessage)
73+
// console.log(Message)
74+
// console.log(Message.verify)
75+
// console.log(Message.verify(data))
76+
77+
// reply
6478
if (plain.quote){
6579
originalMsg = document.createElement('p');
6680
originalMsg.classList.add('text-sm', 'italic', 'border-l-2', 'border-sessionGreen', 'pl-2');
@@ -72,9 +86,29 @@ const setup = async () => {
7286
originalMsg.appendChild(document.createTextNode("..." + authorId +": "+plain.quote.text));
7387
e.appendChild(originalMsg);
7488
}
89+
90+
// message body
7591
e.appendChild(document.createTextNode(plain.profile.displayName +": "+plain.body));
7692
e.classList.add('bg-gray-300','dark:bg-lightGray', 'w-fit', 'rounded-lg', 'p-2', 'my-2')
7793
elem.appendChild(e);
94+
95+
// attachments
96+
if (plain.attachments.length > 0){
97+
plain.attachments.forEach(attachment => {
98+
console.log(attachment);
99+
attachmentElement = document.createElement('p');
100+
attachmentElement.appendChild(document.createTextNode("📎\xa0\xa0\xa0"));
101+
102+
attachmentLink = document.createElement('a');
103+
attachmentLink.appendChild(document.createTextNode((attachment.fileName || attachment.contentType) + ` (${formatBytes(attachment.size)})` ));
104+
attachmentLink.href = attachment.url;
105+
attachmentLink.download = (attachment.fileName || "");
106+
107+
attachmentElement.appendChild(attachmentLink);
108+
attachmentElement.classList.add('text-sm', 'italic', 'pl-1');
109+
e.appendChild(attachmentElement);
110+
});
111+
}
78112

79113
}
80114
catch(ex)

0 commit comments

Comments
 (0)