From 49a6d8b7fa2abeade12f135fa54cb46938447a5d Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Sat, 24 Jun 2017 16:28:16 +0200 Subject: [PATCH] Added minimal polyfill for IntersectionObserver --- scripts/AnimeNotifier.ts | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/scripts/AnimeNotifier.ts b/scripts/AnimeNotifier.ts index 6a4ad029..39f73a80 100644 --- a/scripts/AnimeNotifier.ts +++ b/scripts/AnimeNotifier.ts @@ -9,17 +9,30 @@ export class AnimeNotifier { constructor(app: Application) { this.app = app - this.visibilityObserver = new IntersectionObserver( - entries => { - for(let entry of entries) { - if(entry.intersectionRatio > 0) { - entry.target["became visible"]() - this.visibilityObserver.unobserve(entry.target) + + if("IntersectionObserver" in window) { + // Enable lazy load + this.visibilityObserver = new IntersectionObserver( + entries => { + for(let entry of entries) { + if(entry.intersectionRatio > 0) { + entry.target["became visible"]() + this.visibilityObserver.unobserve(entry.target) + } } - } - }, - {} - ) + }, + {} + ) + } else { + // Disable lazy load feature + this.visibilityObserver = { + disconnect: () => {}, + observe: (elem: HTMLElement) => { + elem["became visible"]() + }, + unobserve: (elem: HTMLElement) => {} + } as IntersectionObserver + } } onReadyStateChange() {