aboutsummaryrefslogtreecommitdiff
path: root/web/script/transition.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-12-19 10:13:44 +0100
committermetamuffin <metamuffin@disroot.org>2023-12-19 10:13:44 +0100
commit349f66ec59e9fcdd21959523ecabd16e5b2e471f (patch)
treef77bbe8f28553ccab36ca6e0dda97dccc6e1f629 /web/script/transition.ts
parentb5972f8fa3ddad874d8ccf2441cb043c54c2fd48 (diff)
downloadjellything-349f66ec59e9fcdd21959523ecabd16e5b2e471f.tar
jellything-349f66ec59e9fcdd21959523ecabd16e5b2e471f.tar.bz2
jellything-349f66ec59e9fcdd21959523ecabd16e5b2e471f.tar.zst
fix double-error when navigating during error
Diffstat (limited to 'web/script/transition.ts')
-rw-r--r--web/script/transition.ts11
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")