chore: custom impl for set.difference api (#19135)

This commit is contained in:
Alex 2025-06-12 11:41:19 -05:00 committed by GitHub
parent 0322a8b1d9
commit 144cc8ab6d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 16 additions and 5 deletions

View File

@ -1,4 +1,4 @@
import type { TimelinePlainDate } from '$lib/utils/timeline-util';
import { setDifference, type TimelinePlainDate } from '$lib/utils/timeline-util';
import { AssetOrder } from '@immich/sdk';
import type { DayGroup } from './day-group.svelte';
import type { MonthGroup } from './month-group.svelte';
@ -27,7 +27,7 @@ export class GroupInsertionCache {
}
get existingDayGroups() {
return this.changedDayGroups.difference(this.newDayGroups);
return setDifference(this.changedDayGroups, this.newDayGroups);
}
get updatedBuckets() {

View File

@ -1,4 +1,4 @@
import type { TimelinePlainDate } from '$lib/utils/timeline-util';
import { setDifference, type TimelinePlainDate } from '$lib/utils/timeline-util';
import { AssetOrder } from '@immich/sdk';
import { GroupInsertionCache } from '../group-insertion-cache.svelte';
@ -76,7 +76,7 @@ export function runAssetOperation(
if (moveAssets.length > 0) {
combinedMoveAssets.push(moveAssets);
}
idsToProcess = idsToProcess.difference(processedIds);
idsToProcess = setDifference(idsToProcess, processedIds);
for (const id of processedIds) {
idsProcessed.add(id);
}

View File

@ -9,6 +9,7 @@ import {
fromTimelinePlainDateTime,
fromTimelinePlainYearMonth,
getTimes,
setDifference,
type TimelinePlainDateTime,
type TimelinePlainYearMonth,
} from '$lib/utils/timeline-util';
@ -132,7 +133,7 @@ export class MonthGroup {
if (moveAssets.length > 0) {
combinedMoveAssets.push(moveAssets);
}
idsToProcess = idsToProcess.difference(processedIds);
idsToProcess = setDifference(idsToProcess, processedIds);
for (const id of processedIds) {
idsProcessed.add(id);
}

View File

@ -216,3 +216,13 @@ export const plainDateTimeCompare = (ascending: boolean, a: TimelinePlainDateTim
}
return aDateTime.millisecond - bDateTime.millisecond;
};
export function setDifference<T>(setA: Set<T>, setB: Set<T>): Set<T> {
const result = new Set<T>();
for (const value of setA) {
if (!setB.has(value)) {
result.add(value);
}
}
return result;
}