feat: add render event type and listener for in-place DOM re-initialization

This commit is contained in:
saberzero1 2026-03-12 19:45:47 +01:00
parent 1392267415
commit 4799b8085d
No known key found for this signature in database
2 changed files with 6 additions and 2 deletions

1
index.d.ts vendored
View File

@ -9,6 +9,7 @@ interface CustomEventMap {
nav: CustomEvent<{ url: FullSlug }> nav: CustomEvent<{ url: FullSlug }>
themechange: CustomEvent<{ theme: "light" | "dark" }> themechange: CustomEvent<{ theme: "light" | "dark" }>
readermodechange: CustomEvent<{ mode: "on" | "off" }> readermodechange: CustomEvent<{ mode: "on" | "off" }>
render: CustomEvent<{}>
} }
type ContentIndex = Record<FullSlug, ContentDetails> type ContentIndex = Record<FullSlug, ContentDetails>

View File

@ -120,7 +120,7 @@ function clearActivePopover() {
allPopoverElements.forEach((popoverElement) => popoverElement.classList.remove("active-popover")) allPopoverElements.forEach((popoverElement) => popoverElement.classList.remove("active-popover"))
} }
document.addEventListener("nav", () => { function setupPopovers() {
const links = [...document.querySelectorAll("a.internal")] as HTMLAnchorElement[] const links = [...document.querySelectorAll("a.internal")] as HTMLAnchorElement[]
for (const link of links) { for (const link of links) {
link.addEventListener("mouseenter", mouseEnterHandler) link.addEventListener("mouseenter", mouseEnterHandler)
@ -130,4 +130,7 @@ document.addEventListener("nav", () => {
link.removeEventListener("mouseleave", clearActivePopover) link.removeEventListener("mouseleave", clearActivePopover)
}) })
} }
}) }
document.addEventListener("nav", setupPopovers)
document.addEventListener("render", setupPopovers)