From 367a810137b6f69b2ad5980560b559c725e43915 Mon Sep 17 00:00:00 2001 From: wuzihao051119 Date: Mon, 23 Jun 2025 21:55:21 +0800 Subject: [PATCH] fix(web): multi-select in ascending asset order --- .../timeline-manager/internal/search-support.svelte.ts | 7 +++---- .../managers/timeline-manager/timeline-manager.svelte.ts | 4 ++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/web/src/lib/managers/timeline-manager/internal/search-support.svelte.ts b/web/src/lib/managers/timeline-manager/internal/search-support.svelte.ts index f86e2c1501..f85246933f 100644 --- a/web/src/lib/managers/timeline-manager/internal/search-support.svelte.ts +++ b/web/src/lib/managers/timeline-manager/internal/search-support.svelte.ts @@ -1,4 +1,5 @@ import { plainDateTimeCompare, type TimelinePlainYearMonth } from '$lib/utils/timeline-util'; +import { AssetOrder } from '@immich/sdk'; import type { MonthGroup } from '../month-group.svelte'; import type { TimelineManager } from '../timeline-manager.svelte'; import type { AssetDescriptor, Direction, TimelineAsset } from '../types'; @@ -113,11 +114,10 @@ export async function retrieveRange(timelineManager: TimelineManager, start: Ass if (!endMonthGroup || !endAsset) { return []; } - let direction: Direction = 'earlier'; - if (plainDateTimeCompare(true, startAsset.localDateTime, endAsset.localDateTime) < 0) { + const assetOrder: AssetOrder = timelineManager.getAssetOrder(); + if (plainDateTimeCompare(assetOrder === AssetOrder.Desc, startAsset.localDateTime, endAsset.localDateTime) < 0) { [startAsset, endAsset] = [endAsset, startAsset]; [startMonthGroup, endMonthGroup] = [endMonthGroup, startMonthGroup]; - direction = 'earlier'; } const range: TimelineAsset[] = []; @@ -126,7 +126,6 @@ export async function retrieveRange(timelineManager: TimelineManager, start: Ass startMonthGroup, startDayGroup, startAsset, - direction, })) { range.push(targetAsset); if (targetAsset.id === endAsset.id) { diff --git a/web/src/lib/managers/timeline-manager/timeline-manager.svelte.ts b/web/src/lib/managers/timeline-manager/timeline-manager.svelte.ts index 8aacd0a90a..f32962bbd9 100644 --- a/web/src/lib/managers/timeline-manager/timeline-manager.svelte.ts +++ b/web/src/lib/managers/timeline-manager/timeline-manager.svelte.ts @@ -540,4 +540,8 @@ export class TimelineManager { isMismatched(this.#options.isTrashed, asset.isTrashed) ); } + + getAssetOrder() { + return this.#options.order ?? AssetOrder.Desc; + } }