Fix: rAF-Sicherheitsnetz fuer Blur zentral in _showPopupProgress

Vorheriger Fix in selectIncident griff nicht beim handleRefresh-Pfad
(manueller Aktualisieren-Klick), weil dieser direkt UI.showProgress aufruft
ohne selectIncident zu durchlaufen. Damit blieb eine Lage, deren erster
Refresh per Klick angestossen wurde, unblurred.

rAF mit add("blurred") jetzt direkt in _showPopupProgress (components.js),
sobald state.isFirst gesetzt ist. Damit greift der Blur in jedem Pfad, der
durch _showPopupProgress laeuft — selectIncident, handleRefresh,
handleStatusUpdate (WebSocket), Initial-Restore.

Der zentrale rAF in selectIncident ist redundant und wieder entfernt.
Der _willReBlur-Skip von remove("blurred") in selectIncident bleibt
erhalten — verhindert ueberfluessiges remove+add im selben Tick.

cache-bust components.js auf v=20260427a, app.js auf v=20260427c.
Dieser Commit ist enthalten in:
Claude Code
2026-04-27 20:52:39 +00:00
Ursprung 14d1062583
Commit 059395393c
3 geänderte Dateien mit 12 neuen und 11 gelöschten Zeilen

Datei anzeigen

@@ -336,7 +336,16 @@ const UI = {
overlay.classList.add('blocking');
// Apply blur to grid
const grid = document.querySelector('.tab-panels');
if (grid) grid.classList.add('blurred');
if (grid) {
grid.classList.add('blurred');
// Sicherheitsnetz: bei viel DOM-Reshuffle im selben Tick
// (Display-Wechsel, renderSidebar, leere innerHTML) greift
// CSS filter:blur erst beim naechsten Layout-Pass. Im
// naechsten Frame nochmal setzen — idempotent.
requestAnimationFrame(() => {
if (state && state.isFirst) grid.classList.add('blurred');
});
}
} else {
overlay.classList.remove('blocking');
}