diff --git a/web/src/lib/components/shared-components/scrollbar/scrollbar.svelte b/web/src/lib/components/shared-components/scrollbar/scrollbar.svelte
index 24490329b..222654c59 100644
--- a/web/src/lib/components/shared-components/scrollbar/scrollbar.svelte
+++ b/web/src/lib/components/shared-components/scrollbar/scrollbar.svelte
@@ -21,11 +21,27 @@
$: hoverY = height - windowHeight + clientY;
$: scrollY = toScrollY(timelineY);
- $: segments = $assetStore.buckets.map((bucket) => ({
- count: bucket.assets.length,
- height: toScrollY(bucket.bucketHeight),
- timeGroup: bucket.bucketDate,
- }));
+
+ class Segment {
+ public count;
+ public height;
+ public timeGroup;
+
+ constructor({ count = 0, height = 0, timeGroup = '' }) {
+ this.count = count;
+ this.height = height;
+ this.timeGroup = timeGroup;
+ }
+ }
+
+ $: segments = $assetStore.buckets.map(
+ (bucket) =>
+ new Segment({
+ count: bucket.assets.length,
+ height: toScrollY(bucket.bucketHeight),
+ timeGroup: bucket.bucketDate,
+ }),
+ );
const dispatch = createEventDispatcher<{ scrollTimeline: number }>();
const scrollTimeline = () => dispatch('scrollTimeline', toTimelineY(hoverY));
@@ -51,6 +67,23 @@
isAnimating = false;
});
};
+
+ const prevYearSegmentHeight = (segments: Segment[], index: number) => {
+ var prevYear = null;
+ var height = 0;
+ for (var i = index; i >= 0; i--) {
+ const curr = segments[i];
+ const currYear = fromLocalDateTime(curr.timeGroup).year;
+ if (prevYear && prevYear != currYear) {
+ break;
+ }
+
+ height += curr.height;
+ prevYear = currYear;
+ }
+
+ return height;
+ };