diff --git a/docs/_includes/base.njk b/docs/_includes/base.njk index 8474ca63d..95c2722ae 100644 --- a/docs/_includes/base.njk +++ b/docs/_includes/base.njk @@ -13,6 +13,9 @@ {# Scripts #} + + + @@ -41,8 +44,8 @@ - - + +
{# Logo #}
diff --git a/docs/assets/scripts/turbo.js b/docs/assets/scripts/turbo.js index e6d08c837..9de36c966 100644 --- a/docs/assets/scripts/turbo.js +++ b/docs/assets/scripts/turbo.js @@ -1,5 +1,3 @@ -import 'https://cdn.jsdelivr.net/npm/@hotwired/turbo@7.3.0/+esm'; - if (!window.___turboScrollPositions___) { window.___turboScrollPositions___ = {}; } @@ -7,11 +5,11 @@ if (!window.___turboScrollPositions___) { const positions = window.___turboScrollPositions___; function saveScrollPosition() { - document.querySelectorAll('[data-remember-scroll]').forEach(el => { - if (el.id) { - positions[el.id] = { - top: el.scrollTop, - left: el.scrollLeft + document.querySelectorAll('[data-remember-scroll]').forEach(element => { + if (element.id) { + positions[element.id] = { + top: element.scrollTop, + left: element.scrollLeft }; } else { console.warn(`Can't save scroll position for elements without an id.`, el); @@ -20,13 +18,28 @@ function saveScrollPosition() { } function restoreScrollPosition(event) { - const el = event.detail?.newBody || document; + if (event.detail && event.detail.newBody) { + event.detail.newBody.querySelectorAll('[data-remember-scroll]').forEach(element => { + if (!positions[element.id]) { + return; + } - el.querySelectorAll('[data-remember-scroll]').forEach(el => { - if (positions[el.id]) { - el.scrollTop = positions[el.id].top; - el.scrollLeft = positions[el.id].left; + const { top, left } = positions[element.id]; + + element.scrollTop = top; + element.scrollLeft = left; + }); + } + + document.querySelectorAll('[data-remember-scroll]').forEach(element => { + if (!positions[element.id]) { + return; } + + const { top, left } = positions[element.id]; + + element.scrollTop = top; + element.scrollLeft = left; }); } diff --git a/docs/assets/styles/docs.css b/docs/assets/styles/docs.css index bcb1eb500..c68c60b56 100644 --- a/docs/assets/styles/docs.css +++ b/docs/assets/styles/docs.css @@ -98,11 +98,11 @@ wa-page[view='desktop']::part(navigation) { } wa-page[view='desktop'] > #sidebar { + overflow: auto; + max-height: 100%; min-width: 300px; padding: var(--wa-space-xl); max-width: 300px; - overflow: auto; - max-height: 100%; } #sidebar,