about summary refs log tree commit diff
path: root/app/javascript/themes/glitch/util/intersection_observer_wrapper.js
diff options
context:
space:
mode:
authorbeatrix <beatrix.bitrot@gmail.com>2017-12-06 17:44:07 -0500
committerGitHub <noreply@github.com>2017-12-06 17:44:07 -0500
commit81b01457598459c42a7b14d9aa14f91ba60dcae1 (patch)
tree7d3e6dadb75f3be95e5a5ed8b7ecfe90e7711831 /app/javascript/themes/glitch/util/intersection_observer_wrapper.js
parentf1cbea77a4a52929244198dcbde26d63d837489a (diff)
parent017fc81caf8f265e5c5543186877437485625795 (diff)
Merge pull request #229 from glitch-soc/glitch-theme
Advanced Next-Level Flavours And Skins For Mastodon™
Diffstat (limited to 'app/javascript/themes/glitch/util/intersection_observer_wrapper.js')
-rw-r--r--app/javascript/themes/glitch/util/intersection_observer_wrapper.js57
1 files changed, 0 insertions, 57 deletions
diff --git a/app/javascript/themes/glitch/util/intersection_observer_wrapper.js b/app/javascript/themes/glitch/util/intersection_observer_wrapper.js
deleted file mode 100644
index 2b24c6583..000000000
--- a/app/javascript/themes/glitch/util/intersection_observer_wrapper.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// Wrapper for IntersectionObserver in order to make working with it
-// a bit easier. We also follow this performance advice:
-// "If you need to observe multiple elements, it is both possible and
-// advised to observe multiple elements using the same IntersectionObserver
-// instance by calling observe() multiple times."
-// https://developers.google.com/web/updates/2016/04/intersectionobserver
-
-class IntersectionObserverWrapper {
-
-  callbacks = {};
-  observerBacklog = [];
-  observer = null;
-
-  connect (options) {
-    const onIntersection = (entries) => {
-      entries.forEach(entry => {
-        const id = entry.target.getAttribute('data-id');
-        if (this.callbacks[id]) {
-          this.callbacks[id](entry);
-        }
-      });
-    };
-
-    this.observer = new IntersectionObserver(onIntersection, options);
-    this.observerBacklog.forEach(([ id, node, callback ]) => {
-      this.observe(id, node, callback);
-    });
-    this.observerBacklog = null;
-  }
-
-  observe (id, node, callback) {
-    if (!this.observer) {
-      this.observerBacklog.push([ id, node, callback ]);
-    } else {
-      this.callbacks[id] = callback;
-      this.observer.observe(node);
-    }
-  }
-
-  unobserve (id, node) {
-    if (this.observer) {
-      delete this.callbacks[id];
-      this.observer.unobserve(node);
-    }
-  }
-
-  disconnect () {
-    if (this.observer) {
-      this.callbacks = {};
-      this.observer.disconnect();
-      this.observer = null;
-    }
-  }
-
-}
-
-export default IntersectionObserverWrapper;