ankurrsinghal/svelte-legos

fix: infinite scroll doesn't work when bound to window

lettucebowler opened this issue · 1 comments

window.scrollHeight is undefined, so it never triggers the update when this action is used on svelte:window. I'm currently working around this using the following patch file with pnpm patch:

index 5a175f44fab9cffb31af5355f2fd4d3200ce2c3b..3e9f6b14b3ffd1fe05d36de386d2eaa8fbfd3caa 100644
--- a/package/actions/infiniteScrollAction/index.js
+++ b/package/actions/infiniteScrollAction/index.js
@@ -78,7 +78,11 @@ function check({ disabled, scrollEventTarget, element, distance, cb, }, force) {
     let viewportBottom = viewportScrollTop + getVisibleHeight(scrollEventTarget);
     let shouldTrigger = false;
     if (scrollEventTarget === element) {
-        shouldTrigger = scrollEventTarget.scrollHeight - viewportBottom <= distance;
+        if (scrollEventTarget === window) {
+            shouldTrigger = document.documentElement.scrollHeight - viewportBottom <= distance;
+        } else {
+            shouldTrigger = scrollEventTarget.scrollHeight - viewportBottom <= distance;
+        }
     }
     else {
         let elementBottom = getElementTop(element) -

Hi, @lettucebowler I will get back to you on this.