cd score layout modern fixes

This commit is contained in:
2026-05-24 22:04:07 +02:00
parent f9e45327bf
commit b2584763ee
4 changed files with 48 additions and 11 deletions

View File

@@ -1262,9 +1262,34 @@ class CommentSystem {
}
// Save xd-score-wrapper before innerHTML wipe.
// On first load it lives as a previous sibling (server-rendered); afterwards inside.
let xdWrapperHtml = null;
const xdInside = this.container.querySelector('.xd-score-wrapper');
if (xdInside) {
xdWrapperHtml = xdInside.outerHTML;
} else {
const prev = this.container.previousElementSibling;
if (prev && prev.classList.contains('xd-score-wrapper')) {
xdWrapperHtml = prev.outerHTML;
prev.remove();
}
}
const mediaState = this.saveMediaState();
this.container.innerHTML = html;
this.restoreMediaState(mediaState);
// Re-inject xd-score-wrapper between the comment input and the comments list
if (xdWrapperHtml) {
const commentsList = this.container.querySelector('.comments-list');
if (commentsList) {
const tmp = document.createElement('div');
tmp.innerHTML = xdWrapperHtml;
const xdEl = tmp.firstElementChild;
if (xdEl) this.container.insertBefore(xdEl, commentsList);
}
}
this.syncSubscribeButton(isSubscribed);
CommentSystem.autoplayConvertedGifs(this.container);

View File

@@ -4923,9 +4923,6 @@ window.cancelAnimFrame = (function () {
const pageItemId = container.dataset.itemId;
if (pageItemId && String(pageItemId) !== String(itemId)) return;
const favs = document.getElementById('favs');
if (!favs) return;
document.querySelectorAll('.xd-score-wrapper').forEach(w => w.remove());
if (score <= 0) return;
@@ -4935,7 +4932,15 @@ window.cancelAnimFrame = (function () {
const newWrapper = document.createElement('div');
newWrapper.className = 'xd-score-wrapper';
newWrapper.innerHTML = `<span class="xd-score-badge ${meta.cls}" tooltip="xD Score: ${score} pts" flow="up">${meta.label} <span class="xd-score-num">${score}</span></span>`;
favs.parentNode.insertBefore(newWrapper, favs.nextSibling);
// Insert inside container, before .comments-list — matching the position
// that comments.js uses after each render.
const commentsList = container.querySelector('.comments-list');
if (commentsList) {
container.insertBefore(newWrapper, commentsList);
} else {
container.parentNode.insertBefore(newWrapper, container);
}
};
window.updateXdBadgeFromScore = (itemId, score) => {