From 13ceba2544203a3f1bd2402336c0210e51f6801a Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 21 Oct 2023 21:29:39 +0200 Subject: force reload when player unloads --- web/script/player/mod.ts | 3 ++- web/script/transition.ts | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'web/script') diff --git a/web/script/player/mod.ts b/web/script/player/mod.ts index 8473280..ce3c113 100644 --- a/web/script/player/mod.ts +++ b/web/script/player/mod.ts @@ -9,12 +9,13 @@ import { Logger } from "../jshelper/src/log.ts"; import { EncodingProfile } from "./jhls.d.ts"; import { Player } from "./player.ts"; -document.addEventListener("DOMContentLoaded", () => { +globalThis.addEventListener("DOMContentLoaded", () => { if (document.body.classList.contains("player")) { if (!globalThis.MediaSource) return alert("Media Source Extension API required") const node_id = globalThis.location.pathname.split("/")[2]; const main = document.getElementById("main")!; document.getElementsByTagName("footer")[0].remove() + globalThis.dispatchEvent(new Event("navigationrequiresreload")) initialize_player(main, node_id) } }) diff --git a/web/script/transition.ts b/web/script/transition.ts index 5043c18..6616bc0 100644 --- a/web/script/transition.ts +++ b/web/script/transition.ts @@ -16,9 +16,15 @@ globalThis.addEventListener("popstate", (_e) => { transition_to(window.location.href, true) }) +let disable_transition = false +globalThis.addEventListener("navigationrequiresreload", () => { + disable_transition = true +}) + function patch_page() { document.querySelectorAll("a").forEach(el => { el.addEventListener("click", async ev => { + if (disable_transition) return ev.preventDefault() await transition_to(el.href) }) -- cgit v1.2.3-70-g09d2