mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
chore: custom impl for set.difference api (#19135)
This commit is contained in:
parent
0322a8b1d9
commit
144cc8ab6d
@ -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 { AssetOrder } from '@immich/sdk';
|
||||||
import type { DayGroup } from './day-group.svelte';
|
import type { DayGroup } from './day-group.svelte';
|
||||||
import type { MonthGroup } from './month-group.svelte';
|
import type { MonthGroup } from './month-group.svelte';
|
||||||
@ -27,7 +27,7 @@ export class GroupInsertionCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get existingDayGroups() {
|
get existingDayGroups() {
|
||||||
return this.changedDayGroups.difference(this.newDayGroups);
|
return setDifference(this.changedDayGroups, this.newDayGroups);
|
||||||
}
|
}
|
||||||
|
|
||||||
get updatedBuckets() {
|
get updatedBuckets() {
|
||||||
|
@ -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 { AssetOrder } from '@immich/sdk';
|
||||||
|
|
||||||
import { GroupInsertionCache } from '../group-insertion-cache.svelte';
|
import { GroupInsertionCache } from '../group-insertion-cache.svelte';
|
||||||
@ -76,7 +76,7 @@ export function runAssetOperation(
|
|||||||
if (moveAssets.length > 0) {
|
if (moveAssets.length > 0) {
|
||||||
combinedMoveAssets.push(moveAssets);
|
combinedMoveAssets.push(moveAssets);
|
||||||
}
|
}
|
||||||
idsToProcess = idsToProcess.difference(processedIds);
|
idsToProcess = setDifference(idsToProcess, processedIds);
|
||||||
for (const id of processedIds) {
|
for (const id of processedIds) {
|
||||||
idsProcessed.add(id);
|
idsProcessed.add(id);
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import {
|
|||||||
fromTimelinePlainDateTime,
|
fromTimelinePlainDateTime,
|
||||||
fromTimelinePlainYearMonth,
|
fromTimelinePlainYearMonth,
|
||||||
getTimes,
|
getTimes,
|
||||||
|
setDifference,
|
||||||
type TimelinePlainDateTime,
|
type TimelinePlainDateTime,
|
||||||
type TimelinePlainYearMonth,
|
type TimelinePlainYearMonth,
|
||||||
} from '$lib/utils/timeline-util';
|
} from '$lib/utils/timeline-util';
|
||||||
@ -132,7 +133,7 @@ export class MonthGroup {
|
|||||||
if (moveAssets.length > 0) {
|
if (moveAssets.length > 0) {
|
||||||
combinedMoveAssets.push(moveAssets);
|
combinedMoveAssets.push(moveAssets);
|
||||||
}
|
}
|
||||||
idsToProcess = idsToProcess.difference(processedIds);
|
idsToProcess = setDifference(idsToProcess, processedIds);
|
||||||
for (const id of processedIds) {
|
for (const id of processedIds) {
|
||||||
idsProcessed.add(id);
|
idsProcessed.add(id);
|
||||||
}
|
}
|
||||||
|
@ -216,3 +216,13 @@ export const plainDateTimeCompare = (ascending: boolean, a: TimelinePlainDateTim
|
|||||||
}
|
}
|
||||||
return aDateTime.millisecond - bDateTime.millisecond;
|
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;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user