diff options
-rw-r--r-- | web/script/transition.ts | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/web/script/transition.ts b/web/script/transition.ts index 6c7df14..04f19f9 100644 --- a/web/script/transition.ts +++ b/web/script/transition.ts @@ -39,8 +39,8 @@ async function transition_to(href: string, back?: boolean) { } function show_error(mesg: string) { - if (spinner_timeout) clearTimeout(spinner_timeout) - if (spinner_element) spinner_element.remove() + clear_spinner() + disable_transition = true document.body.append(e("span", { class: "jst-error" }, mesg)) } @@ -58,15 +58,20 @@ function prepare_load(href: string, back?: boolean) { } const [head, body] = rt.split("<head>")[1].split("</head>") if (!back) window.history.pushState({}, "", href) + clear_spinner() document.head.innerHTML = head document.body.outerHTML = body - spinner_timeout = spinner_element = undefined globalThis.dispatchEvent(new Event("DOMContentLoaded")) fade(true) } } let spinner_timeout: number | undefined, spinner_element: HTMLElement | undefined; +function clear_spinner() { + if (spinner_timeout) clearTimeout(spinner_timeout) + if (spinner_element) spinner_element.remove() + spinner_element = spinner_timeout = undefined; +} function fade(dir: boolean) { const overlay = document.createElement("div") overlay.classList.add("jst-fade") |