Mau Camargo
2023-11-05 e806c30fa1a7ab941969da01c05ac4adeeeeeb9e
quartz/components/scripts/spa.inline.ts
@@ -20,6 +20,7 @@
const getOpts = ({ target }: Event): { url: URL; scroll?: boolean } | undefined => {
  if (!isElement(target)) return
  if (target.attributes.getNamedItem("target")?.value === "_blank") return
  const a = target.closest("a")
  if (!a) return
  if ("routerIgnore" in a.dataset) return
@@ -64,7 +65,7 @@
  // scroll into place and add history
  if (!isBack) {
    if (url.hash) {
      const el = document.getElementById(url.hash.substring(1))
      const el = document.getElementById(decodeURIComponent(url.hash.substring(1)))
      el?.scrollIntoView()
    } else {
      window.scrollTo({ top: 0 })
@@ -79,7 +80,9 @@
  // delay setting the url until now
  // at this point everything is loaded so changing the url should resolve to the correct addresses
  history.pushState({}, "", url)
  if (!isBack) {
    history.pushState({}, "", url)
  }
  notifyNav(getFullSlug(window))
  delete announcer.dataset.persist
}
@@ -90,7 +93,7 @@
  if (typeof window !== "undefined") {
    window.addEventListener("click", async (event) => {
      const { url } = getOpts(event) ?? {}
      if (!url) return
      if (!url || event.ctrlKey || event.metaKey) return
      event.preventDefault()
      try {
        navigate(url, false)