diff options
author | tdro <tdro@noreply.example.com> | 2022-09-02 03:13:53 -0400 |
---|---|---|
committer | tdro <tdro@noreply.example.com> | 2022-09-02 03:13:53 -0400 |
commit | 86458d0fe0da81b1c8d482ac7850a6b4720349d7 (patch) | |
tree | 054f166299dc1d412b6d4df8086ce1a43ab21671 /static | |
parent | 89b84076599158502fcb31e49b72ba4229bf8bb3 (diff) | |
download | canory-86458d0fe0da81b1c8d482ac7850a6b4720349d7.tar.gz canory-86458d0fe0da81b1c8d482ac7850a6b4720349d7.tar.bz2 canory-86458d0fe0da81b1c8d482ac7850a6b4720349d7.zip |
static/js/pager.ts: Remove redundant event listener
Diffstat (limited to 'static')
-rw-r--r-- | static/js/pager.ts | 46 |
1 files changed, 28 insertions, 18 deletions
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); + }); })(); |