diff options
Diffstat (limited to 'frontend/index.ts')
| -rw-r--r-- | frontend/index.ts | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/frontend/index.ts b/frontend/index.ts index a00854f..61215cf 100644 --- a/frontend/index.ts +++ b/frontend/index.ts @@ -3,35 +3,36 @@ import htmx from "htmx.org"; htmx.config.historyRestoreAsHxRequest = false; function setupAnchors() { - document.querySelectorAll("a").forEach(e => { - // stuff related to external links are already handled in the backend - if (!e.href.startsWith(window.location.origin) && /https?:\/\//.test(e.href)) return; - if (e.href == window.location.href) e.classList.add("target"); - else e.classList.remove("target"); - if (e.hasAttribute("hx-trigger")) return; - e.setAttribute("hx-get", e.href) - e.setAttribute("hx-trigger", "click") - e.setAttribute("hx-target", "#content") - e.setAttribute("hx-swap", "outerHTML show:body:top") - htmx.process(e) - }); + document.querySelectorAll("a").forEach((e) => { + // stuff related to external links are already handled in the backend + if (!e.href.startsWith(window.location.origin) && /https?:\/\//.test(e.href)) return; + if (e.href == window.location.href) e.classList.add("target"); + else e.classList.remove("target"); + if (e.hasAttribute("hx-trigger")) return; + e.setAttribute("hx-get", e.href); + e.setAttribute("hx-trigger", "click"); + e.setAttribute("hx-target", "#content"); + e.setAttribute("hx-swap", "outerHTML show:body:top"); + htmx.process(e); + }); } // updating history and window title -document.addEventListener("htmx:afterSettle", e => { - if (e.detail.xhr === undefined) return - const title = e.detail.xhr.getResponseHeader("Updated-Title") - if (title?.length !== 0) document.title = decodeURIComponent(title).replaceAll("+", " ") - const quote = e.detail.xhr.getResponseHeader("Updated-Quote") - if (quote?.length !== 0) - document.querySelector("#quote")!.innerHTML = "« " + decodeURIComponent(quote).replaceAll("+", " ") + " »" - setupAnchors() -}) +document.addEventListener("htmx:afterSettle", (e) => { + if (e.detail.xhr === undefined) return; + const title = e.detail.xhr.getResponseHeader("Updated-Title"); + if (title?.length !== 0) document.title = decodeURIComponent(title).replaceAll("+", " "); + const quote = e.detail.xhr.getResponseHeader("Updated-Quote"); + if (quote?.length !== 0) + document.querySelector("#quote")!.innerHTML = + "« " + decodeURIComponent(quote).replaceAll("+", " ") + " »"; + setupAnchors(); +}); -document.body.addEventListener('htmx:beforeSwap', function(e) { - if(e.detail.xhr.status !== 404) return - e.detail.shouldSwap = true; - e.detail.isError = false; -}) +document.body.addEventListener("htmx:beforeSwap", function (e) { + if (e.detail.xhr.status !== 404) return; + e.detail.shouldSwap = true; + e.detail.isError = false; +}); -setupAnchors() +setupAnchors(); |
