From f04d87254b276b376855bcb0b55b127e067f5174 Mon Sep 17 00:00:00 2001 From: Honey Date: Mon, 8 Jun 2026 01:26:46 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20concerts=20button=20always=20visible,?= =?UTF-8?q?=20shows=20'Keine=20Konzerte=20angek=C3=BCndigt'=20when=20empty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- src/views/detail.js | 12 +++++------- src/views/events.js | 5 +++++ styles.css | 1 + 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/views/detail.js b/src/views/detail.js index 32810e2..052ec3d 100644 --- a/src/views/detail.js +++ b/src/views/detail.js @@ -229,13 +229,11 @@ export async function loadArtistDetail(artist) { actionBar.appendChild(shuffleBtn); } const events = eventsRes.status === 'fulfilled' ? (eventsRes.value || []) : []; - if(events.length) { - const evBtn = document.createElement('button'); - evBtn.className = 'artist-action-btn'; - evBtn.innerHTML = ` Konzerte (${events.length})`; - evBtn.onclick = () => openEventsModal(events, artist.name); - actionBar.appendChild(evBtn); - } + const evBtn = document.createElement('button'); + evBtn.className = 'artist-action-btn'; + evBtn.innerHTML = ` Konzerte${events.length ? ` (${events.length})` : ''}`; + evBtn.onclick = () => openEventsModal(events, artist.name); + actionBar.appendChild(evBtn); } if(albEl) { albEl.innerHTML = ''; _renderArtistAlbums(albEl, ndAlbums, iAlbums, artist); } diff --git a/src/views/events.js b/src/views/events.js index b17cf10..48dfa56 100644 --- a/src/views/events.js +++ b/src/views/events.js @@ -25,6 +25,11 @@ export function openEventsModal(events, artistName) { if(!modal || !list) return; title.textContent = `Konzerte · ${artistName}`; + if(!events.length) { + list.innerHTML = '
Keine Konzerte angekündigt
'; + modal.classList.add('open'); + return; + } list.innerHTML = events.map(e => { const d = new Date(e.datetime); const date = d.toLocaleDateString('de-DE', { day: '2-digit', month: 'short', year: 'numeric' }); diff --git a/styles.css b/styles.css index aa4e76a..837b3ee 100644 --- a/styles.css +++ b/styles.css @@ -858,6 +858,7 @@ button:focus{outline:none} .event-book-btn{flex-shrink:0;padding:7px 14px;border-radius:20px;background:var(--accent);color:#fff;font-family:var(--font);font-size:12px;font-weight:700;text-decoration:none;transition:opacity .15s;display:flex;flex-direction:column;align-items:center;gap:2px} .event-book-btn:hover{opacity:.85} .event-sold-badge{font-size:9px;font-weight:600;opacity:.8;letter-spacing:.3px} +.events-empty{padding:32px 24px;color:var(--text2);font-size:14px;text-align:center} /* ── MISC ── */ .spinner{width:28px;height:28px;border:3px solid var(--surface2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:50px auto;display:block}