Thread viewer for Bluesky
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}