From 4799b8085d04141e06f511a70f3ca502f20686b3 Mon Sep 17 00:00:00 2001 From: saberzero1 Date: Thu, 12 Mar 2026 19:45:47 +0100 Subject: [PATCH] feat: add render event type and listener for in-place DOM re-initialization --- index.d.ts | 1 + quartz/components/scripts/popover.inline.ts | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/index.d.ts b/index.d.ts index 9011ee38f..1dc0e2f82 100644 --- a/index.d.ts +++ b/index.d.ts @@ -9,6 +9,7 @@ interface CustomEventMap { nav: CustomEvent<{ url: FullSlug }> themechange: CustomEvent<{ theme: "light" | "dark" }> readermodechange: CustomEvent<{ mode: "on" | "off" }> + render: CustomEvent<{}> } type ContentIndex = Record diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts index 989af7ee8..f2d311dc7 100644 --- a/quartz/components/scripts/popover.inline.ts +++ b/quartz/components/scripts/popover.inline.ts @@ -120,7 +120,7 @@ function clearActivePopover() { allPopoverElements.forEach((popoverElement) => popoverElement.classList.remove("active-popover")) } -document.addEventListener("nav", () => { +function setupPopovers() { const links = [...document.querySelectorAll("a.internal")] as HTMLAnchorElement[] for (const link of links) { link.addEventListener("mouseenter", mouseEnterHandler) @@ -130,4 +130,7 @@ document.addEventListener("nav", () => { link.removeEventListener("mouseleave", clearActivePopover) }) } -}) +} + +document.addEventListener("nav", setupPopovers) +document.addEventListener("render", setupPopovers)