aboutsummaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
authortdro <tdro@noreply.example.com>2022-10-12 19:43:11 -0400
committertdro <tdro@noreply.example.com>2022-10-12 19:43:11 -0400
commit05ff3effd89f3b75443bfcfce4455902c783d27f (patch)
treedd4b3969f8fe1b98e1e062c4519749d0fa200c7d /static
parent320c736adaa6374fb0ac9988a64cbb1bd143425b (diff)
downloadcanory-05ff3effd89f3b75443bfcfce4455902c783d27f.tar.gz
canory-05ff3effd89f3b75443bfcfce4455902c783d27f.tar.bz2
canory-05ff3effd89f3b75443bfcfce4455902c783d27f.zip
static/js/pager: Keep it simple and restore on scroll change
Diffstat (limited to 'static')
-rw-r--r--static/js/pager.ts40
1 files changed, 4 insertions, 36 deletions
diff --git a/static/js/pager.ts b/static/js/pager.ts
index 411c3c5..01d40d7 100644
--- a/static/js/pager.ts
+++ b/static/js/pager.ts
@@ -53,29 +53,6 @@
}
};
- const fragmentClear = (entries) => {
- for (let entry = 0; entry < entries.length; entry++) {
- if (self.location.hash) {
- self.history.replaceState(null, "", url);
- }
- }
- };
-
- const fragmentRelease = (fragmentCallback) => {
- try {
- const fragmentObserver = new IntersectionObserver(fragmentCallback, {
- threshold: 1.0,
- });
- const fragments = document.querySelectorAll("[id]");
-
- for (let fragment = 0; fragment < fragments.length; fragment++) {
- fragmentObserver.observe(fragments[fragment]);
- }
- } catch (error) {
- console.log("The intersection observer is not supported", error);
- }
- };
-
self.addEventListener("DOMContentLoaded", function () {
scrollRestore(url);
self.addEventListener("click", function (event) {
@@ -85,20 +62,11 @@
});
});
- let scrolls = 0;
-
- let once = (action) => {
- once = function () {};
- action();
- };
-
self.addEventListener("scroll", function () {
scrollTrack(url);
- if (scrolls > 3) {
- once(function () {
- fragmentRelease(fragmentClear);
- });
- }
- scrolls++;
+ });
+
+ self.addEventListener("hashchange", function () {
+ scrollRestore(url);
});
})();