dc1af8c585b34121514830fbac545bf06dfd8b9c
Lazy load fetched the entire list at once: every list's loader had a "fill the viewport" recursion gated on scrollContainer.scrollHeight <= clientHeight, but <main> is not the scroller (the window/body is), so that condition is always true and it recursed through every page (with a 10-item window, ~all pages fired at once). Move the filling logic into InfiniteScroll and base it on the sentinel's viewport rect instead: load while the sentinel is within 300px of the viewport bottom, re-checked synchronously after each load. This works regardless of which element scrolls and loads only enough pages to reach past the viewport. Drop the per-page recursion (and now-unused scrollContainer refs / tick imports) from the files, trash, tags, categories and pools lists. 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%