From 2809821c9b0ce05a13fa6ccce586be84d07cf036 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Thu, 8 Oct 2026 17:46:46 +0200 Subject: [PATCH] Vier Fehler, und bei zweien log der Kommentar daneben MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Der Einstellungsknopf lag hinter der Abspielleiste.** Gemessen: `.pl` steht auf Stufe 150, `#chrome` auf gar keiner, und die kleine Leiste spannte über die ganze Breite — genau über die unteren 72 Bildpunkte der Seitenleiste, wo „Einstellungen" klebt. Weil der Spieler bei jedem Wechsel der Adresse minimiert, stand sie zuverlässig im Weg, sobald man dorthin wollte. Die Leiste beginnt jetzt hinter der Seitenleiste. Nicht über die Stufen gelöst, und das ist der Punkt: `#chrome` höher zu setzen hiesse, die Seitenleiste läge auch über dem grossen Spieler — es ist dieselbe Hülle. Dass diese Leiste Platz wegnimmt statt sich darüberzulegen, stand für Inhalt, Hinweise und Auswahlleiste ohnehin schon da; die Seitenleiste war die vergessene vierte. Gemessen, 1400 Bildpunkte breit: Leiste ab 240, Knopf bei 0, keine Überschneidung, und ein Treffertest in der Knopfmitte trifft den Knopf. **Ein Klick auf eine Kategorie kam nie an.** Dort sprang der Code in die Mediathek und suchte danach `.filterzeile select`, um den Wert zu setzen. Die Filterzeile hat kein ``, das es gar nicht gibt. Steht das Genre im Weg, + * braucht es diesen Griff nicht: die Ansicht liest ihn beim Bauen. + * + * **Und der Zwischenspeicher stimmt dann auch.** Die Mediathek wird + * unter ihrem Weg gemerkt. Stünde das Genre nur im Kopf, zeigte ein + * zweiter Besuch die Liste des ersten. */ + let genre = startgenre; let tippt: number | undefined; let gesehen: '' | 'offen' | 'gesehen' = ''; @@ -109,7 +121,18 @@ export function mediathek( return { huelle, wahl }; } - const genrePille = pille('Alle Genres', [], () => genre, w => { genre = w; }); + /** Der Weg zu dieser Mediathek, mit Genre, wenn eines gesetzt ist. */ + const wegMit = (g: string) => + `#/m/${bibliothek.id}/mediathek` + (g ? `/${encodeURIComponent(g)}` : ''); + + // **Die Pille schreibt die Adresse, statt nur neu zu laden.** Dadurch + // überlebt der Filter das Neuladen der Seite, lässt sich weitergeben, + // und der gemerkte Aufbau gehört immer zu genau dem Genre, unter dem er + // gemerkt wurde. + const genrePille = pille('Alle Genres', [], () => genre, w => { + genre = w; + location.hash = wegMit(w); + }); const standPille = pille('Alle', [ ['offen', 'Noch nicht gesehen'], @@ -806,14 +829,15 @@ export function mediathek( // Zuordnung Genre→Farbe müsste jedes Genre kennen, das TMDB je // erfindet. So bekommt jedes eine eigene und immer dieselbe. k.style.background = farbeAus(name); + // **Das Genre steht im Weg, nicht in einem Griff ins DOM.** + // + // Hier stand einmal ein `setTimeout`, das nach dem Sprung ein + // `.filterzeile select` suchte und dessen Wert setzte. Die + // Filterzeile hat aber gar kein `