diff --git a/public/s/css/f0ckm.css b/public/s/css/f0ckm.css index 7ec517f..3f49e90 100644 --- a/public/s/css/f0ckm.css +++ b/public/s/css/f0ckm.css @@ -12866,6 +12866,11 @@ textarea#profile_description { flex-wrap: wrap; } +body.layout-modern .xd-score-wrapper { + margin: 0; + padding: 0px 5px 0px 5px; +} + @keyframes xd-pulse { 0%, diff --git a/public/s/js/comments.js b/public/s/js/comments.js index 066beb2..920f85e 100644 --- a/public/s/js/comments.js +++ b/public/s/js/comments.js @@ -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); diff --git a/public/s/js/f0ckm.js b/public/s/js/f0ckm.js index df451a9..a274584 100644 --- a/public/s/js/f0ckm.js +++ b/public/s/js/f0ckm.js @@ -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 = ``; - 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) => { diff --git a/views/item-partial-modern.html b/views/item-partial-modern.html index 0f7c12c..cd16313 100644 --- a/views/item-partial-modern.html +++ b/views/item-partial-modern.html @@ -5,6 +5,14 @@ {{-- LEFT SIDEBAR: comments + tags --}}