diff --git a/ChessCubing.App/wwwroot/js/chesscubing-interop.js b/ChessCubing.App/wwwroot/js/chesscubing-interop.js index 71d2499..d3bf853 100644 --- a/ChessCubing.App/wwwroot/js/chesscubing-interop.js +++ b/ChessCubing.App/wwwroot/js/chesscubing-interop.js @@ -6,6 +6,7 @@ let menuScrollStarted = false; let menuLastScrollY = 0; let menuAnimationFrame = 0; + let appliedBodyStateClasses = []; function syncViewportHeight() { const visibleHeight = window.visualViewport?.height ?? window.innerHeight; @@ -166,7 +167,20 @@ delete document.body.dataset.page; } - document.body.className = bodyClass || ""; + for (const className of appliedBodyStateClasses) { + document.body.classList.remove(className); + } + + appliedBodyStateClasses = (bodyClass || "") + .split(/\s+/) + .map((value) => value.trim()) + .filter((value) => value.length > 0); + + if (appliedBodyStateClasses.length > 0) { + document.body.classList.add(...appliedBodyStateClasses); + } + + queueMenuVisibilitySync(); }, };