diff --git a/web/src/lib/components/asset-viewer/asset-viewer.svelte b/web/src/lib/components/asset-viewer/asset-viewer.svelte index 83da35e70..9e97584cb 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer.svelte @@ -545,11 +545,10 @@ await api.assetApi.updateAssets({ assetBulkUpdateDto: { ids, removeParent: true } }); for (const child of $stackAssetsStore) { child.stackParentId = null; + child.stackCount = 0; + child.stack = []; assetStore?.addAsset(child); } - asset.stackCount = 0; - asset.stack = []; - assetStore?.updateAsset(asset, true); dispatch('unstack'); notificationController.show({ type: NotificationType.Info, message: 'Un-stacked', timeout: 1500 }); diff --git a/web/src/lib/stores/assets.store.ts b/web/src/lib/stores/assets.store.ts index 83123f7fd..d7d8e0761 100644 --- a/web/src/lib/stores/assets.store.ts +++ b/web/src/lib/stores/assets.store.ts @@ -261,6 +261,9 @@ export class AssetStore { isMismatched(this.options.isArchived, asset.isArchived) || isMismatched(this.options.isFavorite, asset.isFavorite) ) { + // If asset is already in the bucket we don't need to recalculate + // asset store containers + this.updateAsset(asset); return; } @@ -290,6 +293,11 @@ export class AssetStore { const bDate = DateTime.fromISO(b.fileCreatedAt).toUTC(); return bDate.diff(aDate).milliseconds; }); + + // If we added an asset to the store, we need to recalculate + // asset store containers + this.assets.push(asset); + this.updateAsset(asset, true); } getBucketByDate(bucketDate: string): AssetBucket | null {