18f1dbc052a9a787693e3327136e4309bbc792ee
Returning from the file viewer left the grid scrolled to the top: the position lived only in volatile module state and was never carried anywhere, and the scroll restore ran before SvelteKit's own scroll reset (on goto) clobbered it back to the top — worsened by the body, not <main>, being the effective scroller, so scrollTop restoration was inert. - The viewer's back/Escape now return to /files?anchor=<currentId> with noScroll, carrying the position in the URL (survives reload, no longer depends on hidden in-memory state). - The list restores grid DATA from the snapshot as before, but scrolls in afterNavigate — which runs AFTER SvelteKit's scroll handling — using scrollIntoView so it works whether <main> or the window scrolls. The ?anchor is consumed (stripped via shallow replaceState) once applied. - Deep link / hard reload with an anchor but no cached grid falls back to loading a page anchored at that file, then scrolling to it. - Snapshot is mirrored to sessionStorage so a refresh still restores. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
🎋Tanabata — web file manager with tags!
5.6 MiB
Languages
Go
49.6%
Svelte
39%
TypeScript
8.7%
PLpgSQL
1.4%
Dockerfile
0.5%
Other
0.8%