feat(timeline): start at today + infinite scroll into the past #65

Merged
Hartmut merged 7 commits from feature/timeline-past-scroll into main 2026-05-22 11:43:08 +02:00
Showing only changes of commit 2383bcbdc0 - Show all commits
@@ -698,16 +698,16 @@ function TimelineViewContent({
};
}, []);
// Scroll to today the first time the canvas has its full width (after initial data load).
// Depends on totalCanvasWidth so it fires after isInitialLoading → false renders the canvas.
// Scroll to today the first time the canvas is in the DOM (isInitialLoading → false).
// totalCanvasWidth is non-zero before data loads, so it can't be used as the trigger.
useLayoutEffect(() => {
if (totalCanvasWidth === 0) return;
if (isInitialLoading) return;
if (hasScrolledToTodayOnLoad.current) return;
const el = scrollContainerRef.current;
if (!el) return;
el.scrollLeft = toLeft(today);
hasScrolledToTodayOnLoad.current = true;
}, [totalCanvasWidth, toLeft, today]);
}, [isInitialLoading, toLeft, today]);
// Apply scroll compensation synchronously after the canvas grows (left-extend or Today button).
useLayoutEffect(() => {