From c44b315117cdaa1f988c8481016166b30262679b Mon Sep 17 00:00:00 2001 From: midzelis Date: Mon, 29 Sep 2025 12:03:39 +0000 Subject: [PATCH] refactor(web): consolidate asset operations in PhotostreamManager base class Moves common asset operation methods (upsertAssets, removeAssets, updateAssetOperation) from TimelineManager into PhotostreamManager base class, making them available to all photostream implementations. Updates all consuming components to use the more accurate 'upsertAssets' naming instead of separate 'addAssets' and 'updateAssets' methods. - Move asset operation methods to PhotostreamManager base class - Replace addAssets/updateAssets calls with unified upsertAssets method - Update type imports to use PhotostreamManager instead of TimelineManager - Remove operations-support.svelte.ts (functionality moved to base class) - Add abstract upsertAssetIntoSegment method for subclass customization --- .../timeline/TimelineAssetViewer.svelte | 6 +- .../timeline/actions/ArchiveAction.svelte | 4 +- .../actions/DeleteAssetsAction.svelte | 6 +- .../timeline/actions/FavoriteAction.svelte | 4 +- .../actions/TimelineKeyboardActions.svelte | 2 +- .../PhotostreamManager.svelte.ts | 103 +++++++++++++++++- .../PhotostreamSegment.svelte.ts | 44 +++++++- .../timeline-manager/day-group.svelte.ts | 6 +- .../internal/operations-support.svelte.ts | 103 ------------------ .../internal/websocket-support.svelte.ts | 4 +- .../timeline-manager.svelte.spec.ts | 47 ++++---- .../timeline-manager.svelte.ts | 96 +++++++--------- .../lib/managers/timeline-manager/types.ts | 2 +- web/src/lib/utils/actions.ts | 2 +- .../(user)/photos/[[assetId=id]]/+page.svelte | 6 +- .../(user)/utilities/geolocation/+page.svelte | 2 +- 16 files changed, 230 insertions(+), 207 deletions(-) delete mode 100644 web/src/lib/managers/timeline-manager/internal/operations-support.svelte.ts diff --git a/web/src/lib/components/timeline/TimelineAssetViewer.svelte b/web/src/lib/components/timeline/TimelineAssetViewer.svelte index 17e3ed06f3..a12b708cc4 100644 --- a/web/src/lib/components/timeline/TimelineAssetViewer.svelte +++ b/web/src/lib/components/timeline/TimelineAssetViewer.svelte @@ -111,12 +111,12 @@ case AssetAction.UNARCHIVE: case AssetAction.FAVORITE: case AssetAction.UNFAVORITE: { - timelineManager.updateAssets([action.asset]); + timelineManager.upsertAssets([action.asset]); break; } case AssetAction.ADD: { - timelineManager.addAssets([action.asset]); + timelineManager.upsertAssets([action.asset]); break; } @@ -125,7 +125,7 @@ break; } case AssetAction.REMOVE_ASSET_FROM_STACK: { - timelineManager.addAssets([toTimelineAsset(action.asset)]); + timelineManager.upsertAssets([toTimelineAsset(action.asset)]); if (action.stack) { //Have to unstack then restack assets in timeline in order to update the stack count in the timeline. updateUnstackedAssetInTimeline( diff --git a/web/src/lib/components/timeline/actions/ArchiveAction.svelte b/web/src/lib/components/timeline/actions/ArchiveAction.svelte index de778981ca..7dea81076f 100644 --- a/web/src/lib/components/timeline/actions/ArchiveAction.svelte +++ b/web/src/lib/components/timeline/actions/ArchiveAction.svelte @@ -1,6 +1,6 @@