feat(web): greifbarer Rollbalken, Zeitleiste in die Favoriten verlegt (3.1)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
073593d963
commit
6652fb4d2b
6 files changed
+61
-9
No files matched your search
@@ -3,7 +3,7 @@ import { esc } from '../utils.js';
|
||||
import { api } from '../api.js';
|
||||
import { openDlModal } from '../ui/ui.js';
|
||||
// Zirkulär — sicher, weil nur in Ereignisbehandlern aufgerufen
|
||||
import { navigate } from './navigation.js';
|
||||
import { navigate, _navGoBack } from './navigation.js';
|
||||
|
||||
// ─── NEU VON DEINEN KÜNSTLERN ───────────────────────────────────────────────
|
||||
// Zeitleiste der jüngsten Veröffentlichungen aller Künstler, denen man folgt. "Folgen" ist
|
||||
@@ -15,6 +15,10 @@ let _laeuft = false;
|
||||
|
||||
export async function loadArtistNews(tage = _tage) {
|
||||
_tage = tage;
|
||||
// Die Seite haengt an den Favoriten (Knopf "✨ Neu") und nicht mehr an der Seitenleiste,
|
||||
// deshalb braucht sie einen Weg zurueck wie jede andere Unterseite.
|
||||
const zurueck = document.getElementById('artist-news-back-btn');
|
||||
if (zurueck) zurueck.onclick = () => _navGoBack();
|
||||
document.querySelectorAll('#artist-news-sort .sort-chip').forEach(c =>
|
||||
c.classList.toggle('active', Number(c.dataset.days) === tage));
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ export function navigate(page, data=null) {
|
||||
|
||||
document.querySelectorAll('.page').forEach(p => p.classList.remove('active'));
|
||||
document.querySelectorAll('.nav-item,.bnav-item').forEach(n => n.classList.remove('active','active-blue'));
|
||||
const cls = ['discover','new-releases','recommendations','artist-news'].includes(page) ? 'active-blue' : 'active';
|
||||
const cls = ['discover','new-releases','recommendations'].includes(page) ? 'active-blue' : 'active';
|
||||
document.querySelectorAll(`[data-page="${page}"]`).forEach(el => el.classList.add(cls));
|
||||
const pageEl = document.getElementById(`page-${page}`);
|
||||
if(pageEl) {
|
||||
@@ -109,8 +109,10 @@ export function navigate(page, data=null) {
|
||||
}
|
||||
}
|
||||
closeSidebar();
|
||||
if(['discover','new-releases','recommendations','random','artist-news'].includes(page)) switchNavMode('discover');
|
||||
else if(['home','artists','albums','starred','playlists'].includes(page)) switchNavMode('library');
|
||||
// artist-news haengt jetzt an den Favoriten (Knopf "✨ Neu"), nicht mehr an Entdecken —
|
||||
// deshalb bleibt die Seitenleiste in der Bibliothek stehen und Favoriten bleibt markiert.
|
||||
if(['discover','new-releases','recommendations','random'].includes(page)) switchNavMode('discover');
|
||||
else if(['home','artists','albums','starred','playlists','artist-news'].includes(page)) switchNavMode('library');
|
||||
|
||||
if(page==='home') loadHomeData(!S._navJumping); // explicit Home click refreshes; back/forward keeps state
|
||||
if(page==='artists' && !document.getElementById('artists-grid').children.length) loadArtists();
|
||||
|
||||
@@ -265,6 +265,10 @@ function _passendeAnzahl(wrap) {
|
||||
let _starredArtists = [];
|
||||
function _renderStarredArtists(artists) {
|
||||
_starredArtists = artists;
|
||||
// "✨ Neu" fuehrt in die Zeitleiste und steht in der Kopfzeile der Favoriten — dieselbe
|
||||
// Stelle wie in Android. Ohne gefolgte Kuenstler gaebe es dort nichts zu sehen.
|
||||
const neuBtn = document.getElementById('starred-news-btn');
|
||||
if (neuBtn) neuBtn.style.display = artists.length ? '' : 'none';
|
||||
const wrap = document.getElementById('starred-artists-section');
|
||||
if (!wrap) return;
|
||||
wrap.innerHTML = '';
|
||||
|
||||
Reference in new issue
Block a user