update message renderer
All checks were successful
Android Build / publish (push) Successful in 50s
Linux Build / publish (push) Successful in 1m2s

This commit is contained in:
olcxja 2026-07-25 13:54:36 +02:00
commit ea973d2288
4 changed files with 66 additions and 10 deletions

View file

@ -27,14 +27,20 @@
<indicator class="active"> <indicator class="active">
</indicator> </indicator>
<button class="icon-button" onclick="gotoHome()"> <button class="icon-button" onclick="gotoHome()">
<script>document.write(ICONS.home())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.home());
document.currentScript.remove();
</script>
</button> </button>
</sidebarelement> </sidebarelement>
<sidebarelement id="sidebar-add"> <sidebarelement id="sidebar-add">
<indicator> <indicator>
</indicator> </indicator>
<button class="icon-button"> <button class="icon-button">
<script>document.write(ICONS.plus())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.plus());
document.currentScript.remove();
</script>
</button> </button>
</sidebarelement> </sidebarelement>
<hr> <hr>
@ -43,7 +49,10 @@
<indicator> <indicator>
</indicator> </indicator>
<button class="icon-button" onclick="gotoInbox()"> <button class="icon-button" onclick="gotoInbox()">
<script>document.write(ICONS.inbox())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.inbox());
document.currentScript.remove();
</script>
</button> </button>
</sidebarelement> </sidebarelement>
<sidebarelement id="sidebar-profile"> <sidebarelement id="sidebar-profile">
@ -84,7 +93,10 @@
<div class="profile-popup-bg" onclick="closeProfile()"></div> <div class="profile-popup-bg" onclick="closeProfile()"></div>
<div class="profile-popup-content"> <div class="profile-popup-content">
<button class="profile-popup-close-btn" onclick="closeProfile()"> <button class="profile-popup-close-btn" onclick="closeProfile()">
<script>document.write(ICONS.close())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.close());
document.currentScript.remove();
</script>
</button> </button>
<div id="profile-popup-inner"></div> <div id="profile-popup-inner"></div>
</div> </div>

View file

@ -2381,6 +2381,7 @@ function truncateFilename(name, maxLength = 20) {
async function generateMessagesHtml(entries, isPinnedContext = false) { async function generateMessagesHtml(entries, isPinnedContext = false) {
let html = ""; let html = "";
let lastAuthor = null; let lastAuthor = null;
let consecutiveMessages = 0;
for (let [msgId, msg] of entries) { for (let [msgId, msg] of entries) {
let content = msg.content; let content = msg.content;
@ -2481,8 +2482,23 @@ async function generateMessagesHtml(entries, isPinnedContext = false) {
} }
html += `<div style="text-align: center; opacity: 0.5; padding: 1rem; font-size: 0.9rem;">${content}</div>`; html += `<div style="text-align: center; opacity: 0.5; padding: 1rem; font-size: 0.9rem;">${content}</div>`;
lastAuthor = null; lastAuthor = null;
consecutiveMessages = 0;
} else { } else {
let showAvatar = lastAuthor !== msg.author; let showAvatar = false;
if (isPinnedContext) {
showAvatar = true;
} else {
if (lastAuthor !== msg.author) {
showAvatar = true;
consecutiveMessages = 1;
} else {
consecutiveMessages++;
if (consecutiveMessages >= 6) {
showAvatar = true;
consecutiveMessages = 1;
}
}
}
lastAuthor = msg.author; lastAuthor = msg.author;
let authorName = "Unknown"; let authorName = "Unknown";

View file

@ -27,14 +27,20 @@
<indicator class="active"> <indicator class="active">
</indicator> </indicator>
<button class="icon-button" onclick="gotoHome()"> <button class="icon-button" onclick="gotoHome()">
<script>document.write(ICONS.home())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.home());
document.currentScript.remove();
</script>
</button> </button>
</sidebarelement> </sidebarelement>
<sidebarelement id="sidebar-add"> <sidebarelement id="sidebar-add">
<indicator> <indicator>
</indicator> </indicator>
<button class="icon-button"> <button class="icon-button">
<script>document.write(ICONS.plus())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.plus());
document.currentScript.remove();
</script>
</button> </button>
</sidebarelement> </sidebarelement>
<hr> <hr>
@ -43,7 +49,10 @@
<indicator> <indicator>
</indicator> </indicator>
<button class="icon-button" onclick="gotoInbox()"> <button class="icon-button" onclick="gotoInbox()">
<script>document.write(ICONS.inbox())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.inbox());
document.currentScript.remove();
</script>
</button> </button>
</sidebarelement> </sidebarelement>
<sidebarelement id="sidebar-profile"> <sidebarelement id="sidebar-profile">
@ -84,7 +93,10 @@
<div class="profile-popup-bg" onclick="closeProfile()"></div> <div class="profile-popup-bg" onclick="closeProfile()"></div>
<div class="profile-popup-content"> <div class="profile-popup-content">
<button class="profile-popup-close-btn" onclick="closeProfile()"> <button class="profile-popup-close-btn" onclick="closeProfile()">
<script>document.write(ICONS.close())</script> <script>
document.currentScript.insertAdjacentHTML('beforebegin', ICONS.close());
document.currentScript.remove();
</script>
</button> </button>
<div id="profile-popup-inner"></div> <div id="profile-popup-inner"></div>
</div> </div>

View file

@ -2381,6 +2381,7 @@ function truncateFilename(name, maxLength = 20) {
async function generateMessagesHtml(entries, isPinnedContext = false) { async function generateMessagesHtml(entries, isPinnedContext = false) {
let html = ""; let html = "";
let lastAuthor = null; let lastAuthor = null;
let consecutiveMessages = 0;
for (let [msgId, msg] of entries) { for (let [msgId, msg] of entries) {
let content = msg.content; let content = msg.content;
@ -2481,8 +2482,23 @@ async function generateMessagesHtml(entries, isPinnedContext = false) {
} }
html += `<div style="text-align: center; opacity: 0.5; padding: 1rem; font-size: 0.9rem;">${content}</div>`; html += `<div style="text-align: center; opacity: 0.5; padding: 1rem; font-size: 0.9rem;">${content}</div>`;
lastAuthor = null; lastAuthor = null;
consecutiveMessages = 0;
} else { } else {
let showAvatar = lastAuthor !== msg.author; let showAvatar = false;
if (isPinnedContext) {
showAvatar = true;
} else {
if (lastAuthor !== msg.author) {
showAvatar = true;
consecutiveMessages = 1;
} else {
consecutiveMessages++;
if (consecutiveMessages >= 6) {
showAvatar = true;
consecutiveMessages = 1;
}
}
}
lastAuthor = msg.author; lastAuthor = msg.author;
let authorName = "Unknown"; let authorName = "Unknown";