From 1037f7f4e7652d4ed67f2de5083b8d0f603bbf84 Mon Sep 17 00:00:00 2001 From: Min Idzelis Date: Wed, 26 Mar 2025 01:17:04 +0000 Subject: [PATCH] prefix duplicate key on upload asset to not existing bucket --- web/src/lib/stores/assets-store.svelte.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/web/src/lib/stores/assets-store.svelte.ts b/web/src/lib/stores/assets-store.svelte.ts index 2f6d824fc0..7f9d0f8880 100644 --- a/web/src/lib/stores/assets-store.svelte.ts +++ b/web/src/lib/stores/assets-store.svelte.ts @@ -403,8 +403,12 @@ export class AssetBucket { } if (dateGroup) { const intersectingAsset = new IntersectingAsset(dateGroup, asset); - dateGroup.intersetingAssets.push(intersectingAsset); - changedDateGroups.add(dateGroup); + if (dateGroup.intersetingAssets.some((a) => a.id === asset.id)) { + console.error(`Ignoring attempt to add duplicate asset ${asset.id} to ${dateGroup.groupTitle}`); + } else { + dateGroup.intersetingAssets.push(intersectingAsset); + changedDateGroups.add(dateGroup); + } } else { dateGroup = new AssetDateGroup(this, this.dateGroups.length, date, day); dateGroup.intersetingAssets.push(new IntersectingAsset(dateGroup, asset)); @@ -1001,6 +1005,11 @@ export class AssetStore { } const result = await bucket.loader?.execute(async (signal: AbortSignal) => { + if (!!bucket.getFirstAsset()) { + // this happens when a bucket was created by an event instead of via a loadBucket call + // so no need to load the bucket, it already has assets + return; + } const assets = await getTimeBucket( { ...this.#options,