diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/components/lists/listBody.js | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 89c27ec7..03f88f63 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -743,9 +743,25 @@ BlazeComponent.extendComponent({ }, updateList() { + // Use fallback when requestIdleCallback is not available on iOS and Safari + // https://www.afasterweb.com/2017/11/20/utilizing-idle-moments/ + checkIdleTime = + window.requestIdleCallback || + function(handler) { + const startTime = Date.now(); + return setTimeout(function() { + handler({ + didTimeout: false, + timeRemaining() { + return Math.max(0, 50.0 - (Date.now() - startTime)); + }, + }); + }, 1); + }; + if (this.spinnerInView()) { this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); - window.requestIdleCallback(() => this.updateList()); + checkIdleTime(() => this.updateList()); } }, |