Преглед на файлове

fix(web): unstack after stack child selection (#4834)

Sergey Kondrikov преди 1 година
родител
ревизия
cf1dfdc776
променени са 2 файла, в които са добавени 10 реда и са изтрити 3 реда
  1. 2 3
      web/src/lib/components/asset-viewer/asset-viewer.svelte
  2. 8 0
      web/src/lib/stores/assets.store.ts

+ 2 - 3
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 });

+ 8 - 0
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 {