add prenav hook

This commit is contained in:
Jacky Zhao
2025-03-09 09:04:04 -07:00
parent 26ff78f81f
commit 50efa14bd2
5 changed files with 28 additions and 2 deletions

View File

@@ -193,6 +193,12 @@ async function setupExplorer(currentSlug: FullSlug) {
}
explorerUl.insertBefore(fragment, explorerUl.firstChild)
// restore explorer scrollTop position if it exists
const scrollTop = sessionStorage.getItem("explorerScrollTop")
if (scrollTop) {
explorerUl.scrollTop = parseInt(scrollTop)
}
// Set up event handlers
const explorerButtons = explorer.querySelectorAll(
"button.explorer-toggle",
@@ -225,6 +231,13 @@ async function setupExplorer(currentSlug: FullSlug) {
}
}
document.addEventListener("prenav", async (e: CustomEventMap["prenav"]) => {
// save explorer scrollTop position
const explorer = document.getElementById("explorer-ul")
if (!explorer) return
sessionStorage.setItem("explorerScrollTop", explorer.scrollTop.toString())
})
document.addEventListener("nav", async (e: CustomEventMap["nav"]) => {
const currentSlug = e.detail.url
const mobileExplorer = document.querySelector("#mobile-explorer")