#9 - adding first stage of dynamic thumbnails on the main page

This commit is contained in:
2026-05-13 14:07:55 +02:00
parent d476a002d8
commit a1be7792a2
13 changed files with 114 additions and 27 deletions

View File

@@ -9290,6 +9290,13 @@ div.posts>a.thumb.has-notif p::after {
overflow: hidden;
}
/* ===== Dynamic Thumbnail Sizes ===== */
/* Size tier 2: 2×2 grid cells */
div.posts > a.thumb[data-size="2"] {
grid-column: span 2;
grid-row: span 2;
}
.thumb>.preview-video {
position: absolute;
top: 0;

View File

@@ -6518,6 +6518,7 @@ class NotificationSystem {
thumb.dataset.ext = data.mime.split('/')[1].replace('youtube', 'yt').toUpperCase();
thumb.dataset.mode = mode;
thumb.dataset.bg = `/t/${data.id}.webp`;
thumb.dataset.size = '1'; // New items start with no contributions → tier 1
thumb.style.backgroundImage = `url('/t/${data.id}.webp')`;
thumb.style.opacity = '0';
thumb.style.transform = 'scale(0.9)';

View File

@@ -2701,7 +2701,31 @@
const el = document.createElement('div');
el.className = 'scroll-tag-sugg-item'; el.dataset.idx = i;
el.innerHTML = `<i class="fa-solid fa-tag" style="font-size:.65rem;color:rgba(255,255,255,.3)"></i>${esc(r.tag)}<span class="scroll-tag-sugg-count">${r.uses ?? ''}</span>`;
el.addEventListener('mousedown', e => { e.preventDefault(); addTagInput.value = r.tag; closeSugg(); });
el.addEventListener('mouseup', (ev) => {
const sel = window.getSelection?.()?.toString().trim();
if (!sel || sel === r.tag) return;
el.addEventListener('click', (e) => e.stopImmediatePropagation(), { once: true, capture: true });
ev.stopPropagation();
window._showSelTagPopover?.(sel, el, (confirmed) => {
window.getSelection?.()?.removeAllRanges();
addTagInput.value = confirmed;
closeSugg();
submitTag();
});
});
el.addEventListener('click', e => {
const sel = window.getSelection?.()?.toString().trim();
if (sel && sel !== r.tag) {
e.preventDefault();
e.stopPropagation();
return;
}
addTagInput.value = r.tag;
closeSugg();
submitTag();
});
addTagSuggBox.appendChild(el);
});
addTagSuggBox.classList.add('show');