5968a7b59362c54263c4d8eaa56824647835f324
The IntersectionObserver fired only on enter/leave transitions, so a scroll that ended with the sentinel already in range (scrolling straight to the bottom) produced no callback and nothing loaded — the user had to scroll up and back down to force a fresh transition, loading one chunk per cycle. Replace the observer with a capture-phase window scroll listener (capture is required since scroll events don't bubble; it catches scrolls from the grid's nested <main> as well as the document), rAF-throttled, re-checking the sentinel's viewport position on every scroll. Keep the re-check on load completion / mount for short pages and already-in-range first renders. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
🎋Tanabata — web file manager with tags!
5.6 MiB
Languages
Go
50%
Svelte
38.6%
TypeScript
8.8%
PLpgSQL
1.4%
Dockerfile
0.5%
Other
0.7%