From 86458d0fe0da81b1c8d482ac7850a6b4720349d7 Mon Sep 17 00:00:00 2001 From: tdro Date: Fri, 2 Sep 2022 03:13:53 -0400 Subject: static/js/pager.ts: Remove redundant event listener --- static/js/pager.ts | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) (limited to 'static') diff --git a/static/js/pager.ts b/static/js/pager.ts index c77ba40..0de2ec1 100644 --- a/static/js/pager.ts +++ b/static/js/pager.ts @@ -1,7 +1,5 @@ (function () { - const url = self.location.href.split("#")[0]; const cookiesDisabled = !navigator.cookieEnabled; - let settings = { pager: {} }; if (cookiesDisabled) { document.cookie = "disabled"; @@ -9,7 +7,11 @@ return console.log("Pager is disabled due to cookie restrictions."); } - self.addEventListener("DOMContentLoaded", function () { + const settings = { pager: {} }; + + const url = self.location.href.split("#")[0]; + + const scrollRestore = (settings, url) => { if (history.scrollRestoration) history.scrollRestoration = "manual"; if (localStorage["settings"]) { settings = JSON.parse(localStorage["settings"]); @@ -29,28 +31,36 @@ } settings["pager"][url] = self.pageYOffset; localStorage["settings"] = JSON.stringify(settings); - }); + }; - self.addEventListener("scroll", function () { + const scrollTrack = (settings, url) => { const currentPosition = self.pageYOffset; settings["pager"][url] = currentPosition; localStorage["settings"] = JSON.stringify(settings); - }); + }; - self.addEventListener("DOMContentLoaded", function () { - const up = document.getElementById("top"); - const back = document.getElementById("back"); + const backTrack = (back, up, event) => { + if (document.body.contains(up) && up.contains(event.target)) { + event.preventDefault(); + window.scrollTo(0, 0); + } + if (document.body.contains(back) && back.contains(event.target)) { + if (history.length < 2) return; + event.preventDefault(); + history.go(-1); + } + }; + self.addEventListener("DOMContentLoaded", function () { + scrollRestore(settings, url); self.addEventListener("click", function (event) { - if (document.body.contains(up) && up.contains(event.target)) { - event.preventDefault(); - window.scrollTo(0, 0); - } - if (document.body.contains(back) && back.contains(event.target)) { - if (history.length < 2) return; - event.preventDefault(); - history.go(-1); - } + const up = document.getElementById("top"); + const back = document.getElementById("back"); + backTrack(back, up, event); }); }); + + self.addEventListener("scroll", function () { + scrollTrack(settings, url); + }); })(); -- cgit v1.2.3