From 825a69b1866e98db181e5e6dec4e6c879eeac79d Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 22 Oct 2023 15:29:12 +0200 Subject: generalize transitions --- web/script/jshelper | 2 +- web/script/transition.ts | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'web/script') diff --git a/web/script/jshelper b/web/script/jshelper index bd8b233..2d36b07 160000 --- a/web/script/jshelper +++ b/web/script/jshelper @@ -1 +1 @@ -Subproject commit bd8b233316820cd35178085ef132f82279be0504 +Subproject commit 2d36b0762459b8edfc1529827d0c15447edd2669 diff --git a/web/script/transition.ts b/web/script/transition.ts index 2bf2a7b..00ed9a7 100644 --- a/web/script/transition.ts +++ b/web/script/transition.ts @@ -8,14 +8,12 @@ import { e } from "./jshelper/src/element.ts"; const duration = 200 -globalThis.addEventListener("load", () => { +globalThis.addEventListener("DOMContentLoaded", () => { patch_page() }) globalThis.addEventListener("popstate", async (_e) => { - const had_disable_transition = disable_transition; await transition_to(window.location.href, true) - if (had_disable_transition) window.location.reload() }) let disable_transition = false @@ -26,7 +24,6 @@ globalThis.addEventListener("navigationrequiresreload", () => { function patch_page() { document.querySelectorAll("a").forEach(el => { el.addEventListener("click", async ev => { - if (disable_transition) return ev.preventDefault() await transition_to(el.href) }) @@ -34,10 +31,12 @@ function patch_page() { } async function transition_to(href: string, back?: boolean) { + if (disable_transition) return window.location.href = href const trigger_load = prepare_load(href, back) await fade(false) trigger_load() disable_transition = false; + await fade(true) } function show_error(mesg: string) { @@ -61,8 +60,6 @@ function prepare_load(href: string, back?: boolean) { document.head.innerHTML = head document.body.outerHTML = body globalThis.dispatchEvent(new Event("DOMContentLoaded")) - fade(true) - patch_page() } } -- cgit v1.2.3-70-g09d2