diff --git a/web/src/lib/managers/photostream-manager/PhotostreamSegment.svelte.ts b/web/src/lib/managers/photostream-manager/PhotostreamSegment.svelte.ts index 6d8f7150ad..3f553328e9 100644 --- a/web/src/lib/managers/photostream-manager/PhotostreamSegment.svelte.ts +++ b/web/src/lib/managers/photostream-manager/PhotostreamSegment.svelte.ts @@ -7,6 +7,7 @@ import type { PhotostreamManager } from '$lib/managers/photostream-manager/Photo import { getTestHook } from '$lib/managers/photostream-manager/TestHooks.svelte'; import type { AssetOperation, MoveAsset, TimelineAsset } from '$lib/managers/timeline-manager/types'; import type { ViewerAsset } from '$lib/managers/timeline-manager/viewer-asset.svelte'; +import { getJustifiedLayoutFromAssets, getPosition } from '$lib/utils/layout-utils'; export type SegmentIdentifier = { matches(segment: PhotostreamSegment): boolean; @@ -144,7 +145,16 @@ export abstract class PhotostreamSegment { this.loader?.cancel(); } - layout(_?: boolean) {} + layout(_?: boolean): void { + const timelineAssets = this.viewerAssets.map((viewerAsset) => viewerAsset.asset); + const layoutOptions = this.timelineManager.layoutOptions; + const geometry = getJustifiedLayoutFromAssets(timelineAssets, layoutOptions); + this.height = timelineAssets.length === 0 ? 0 : geometry.containerHeight + this.timelineManager.headerHeight; + for (let i = 0; i < this.viewerAssets.length; i++) { + const position = getPosition(geometry, i); + this.viewerAssets[i].position = position; + } + } updateIntersection({ intersecting, actuallyIntersecting }: { intersecting: boolean; actuallyIntersecting: boolean }) { this.intersecting = intersecting; diff --git a/web/src/lib/managers/searchresults-manager/SearchResultsSegment.svelte.ts b/web/src/lib/managers/searchresults-manager/SearchResultsSegment.svelte.ts index 7f63a9884b..83d9fdc719 100644 --- a/web/src/lib/managers/searchresults-manager/SearchResultsSegment.svelte.ts +++ b/web/src/lib/managers/searchresults-manager/SearchResultsSegment.svelte.ts @@ -8,7 +8,6 @@ import type { } from '$lib/managers/searchresults-manager/SearchResultsManager.svelte'; import type { TimelineAsset } from '$lib/managers/timeline-manager/types'; import { ViewerAsset } from '$lib/managers/timeline-manager/viewer-asset.svelte'; -import { getJustifiedLayoutFromAssets, getPosition } from '$lib/utils/layout-utils'; import { toTimelineAsset } from '$lib/utils/timeline-util'; import { TUNABLES } from '$lib/utils/tunables'; import { searchAssets, searchSmart } from '@immich/sdk'; @@ -73,18 +72,6 @@ export class SearchResultsSegment extends PhotostreamSegment { this.layout(); } - layout(): void { - const timelineAssets = this.#viewerAssets.map((viewerAsset) => viewerAsset.asset); - const layoutOptions = this.timelineManager.layoutOptions; - const geometry = getJustifiedLayoutFromAssets(timelineAssets, layoutOptions); - - this.height = timelineAssets.length === 0 ? 0 : geometry.containerHeight + this.timelineManager.headerHeight; - for (let i = 0; i < this.#viewerAssets.length; i++) { - const position = getPosition(geometry, i); - this.#viewerAssets[i].position = position; - } - } - get viewerAssets(): ViewerAsset[] { return this.#viewerAssets; }