fix(web): multi-select in ascending asset order

This commit is contained in:
wuzihao051119 2025-06-23 21:55:21 +08:00
parent ecc58a8971
commit 367a810137
2 changed files with 7 additions and 4 deletions

View File

@ -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) {

View File

@ -540,4 +540,8 @@ export class TimelineManager {
isMismatched(this.#options.isTrashed, asset.isTrashed)
);
}
getAssetOrder() {
return this.#options.order ?? AssetOrder.Desc;
}
}