Thread viewer for Bluesky
at master 23 lines 618 B view raw
1let scrollHandler: (() => void) | undefined; 2let resizeObserver: ResizeObserver | undefined; 3 4export function loadInPages(callback: (next: () => void) => void) { 5 if (scrollHandler) { 6 document.removeEventListener('scroll', scrollHandler); 7 } 8 9 resizeObserver?.disconnect(); 10 11 scrollHandler = () => { 12 if (window.pageYOffset + window.innerHeight > document.body.offsetHeight - 500) { 13 callback(scrollHandler!); 14 } 15 }; 16 17 callback(scrollHandler); 18 19 document.addEventListener('scroll', scrollHandler); 20 21 resizeObserver = new ResizeObserver(scrollHandler); 22 resizeObserver.observe(document.body); 23}