Files
immich/web
midzelis 6eab14f6a4 refactor(web): add imperative day-tier viewport boundary computation
Adds firstInOrNearIndex / lastInOrNearIndex $state on TimelineDay and an
updateAssetBoundaries() method that locates them via binary search on asset
positions. Wired into both layout() (when positions change) and
updateViewportProximities() (when scroll moves the viewport).

This is purely additive — no consumer reads the new state yet. The existing
ViewerAsset.$derived-based proximity machinery and TimelineDay.isInOrNearViewport
.some() derive continue to work unchanged.

Subsequent commits will (1) switch consumers to use the day-tier boundaries
and (2) remove the now-redundant per-asset $derived.

Change-Id: Ib4bdaec5df4801d1347f41bbabd607956a6a6964
2026-05-24 15:41:22 -04:00
..
2026-04-21 14:51:38 -04:00
2023-11-17 22:13:36 -06:00
2022-07-15 23:18:17 -05:00
2026-04-21 14:51:38 -04:00
2026-05-08 16:55:14 -04:00

Immich web project

This project uses the SvelteKit web framework. Please refer to the SvelteKit docs for information on getting started as a contributor to this project. In particular, it will help you navigate the project's code if you understand the basics of SvelteKit routing.

When developing locally, you will run a SvelteKit Node.js server. When this project is deployed to production, it is built as a SPA and deployed as part of the server project.