From ebee8f2ef85d238355483917766ccbf496a11e14 Mon Sep 17 00:00:00 2001 From: rhunk <101876869+rhunk@users.noreply.github.com> Date: Mon, 1 Jan 2024 23:17:38 +0100 Subject: [PATCH] feat(core/export_template): sort by date --- core/src/main/assets/web/export_template.html | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/core/src/main/assets/web/export_template.html b/core/src/main/assets/web/export_template.html index adf19681..f9927a93 100644 --- a/core/src/main/assets/web/export_template.html +++ b/core/src/main/assets/web/export_template.html @@ -207,6 +207,11 @@
+
+ +
@@ -247,8 +252,15 @@ } function makeMain() { + document.querySelector('main').innerHTML = "" const messageTemplate = document.querySelector("#message_template") - Object.values(conversationData.messages).forEach(message => { + let messageList = Object.values(conversationData.messages) + + if (document.querySelector(".sort_by_date").checked) { + messageList = messageList.reverse() + } + + messageList.forEach(message => { const messageObject = document.createElement("div") messageObject.classList.add("message") @@ -276,6 +288,7 @@ messageContainer.classList.add("content") messageContainer.innerHTML = message.serializedContent + const observers = [] if (!message.serializedContent) { messageContainer.innerHTML = "" let messageData = "" @@ -288,19 +301,22 @@ messageData = message.type } messageContainer.innerHTML += messageData + messageContainer.onclick = () => { + observers.forEach(f => f()) + } } if (message.attachments && message.attachments.length > 0) { - let observers = [] - message.attachments.forEach((attachment, index) => { const mediaKey = attachment.key.replace(/(=)/g, "") observers.push(() => { + messageContainer.onclick = () => {} const originalMedia = document.querySelector('.media-ORIGINAL_' + mediaKey) if (!originalMedia) { return } + messageContainer.innerHTML = "" const originalMediaUrl = decodeMedia(originalMedia) @@ -340,7 +356,6 @@ new IntersectionObserver(entries => { if (!fetched && entries[0].isIntersecting === true) { fetched = true - messageContainer.innerHTML = "" observers.forEach(c => { try { c()