From 7d58d5be12c49c43c2419ba82d3e6b625f0abcbe Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Thu, 26 Mar 2026 13:36:25 -0400 Subject: [PATCH] refactor: memory manager (#27206) --- .../components/memory-page/memory-viewer.svelte | 16 ++++++++-------- .../memory-manager.svelte.ts} | 4 ++-- .../(user)/photos/[[assetId=id]]/+page.svelte | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) rename web/src/lib/{stores/memory.store.svelte.ts => managers/memory-manager.svelte.ts} (98%) diff --git a/web/src/lib/components/memory-page/memory-viewer.svelte b/web/src/lib/components/memory-page/memory-viewer.svelte index 3de451bdba..ab3256df49 100644 --- a/web/src/lib/components/memory-page/memory-viewer.svelte +++ b/web/src/lib/components/memory-page/memory-viewer.svelte @@ -21,11 +21,11 @@ import { QueryParameter } from '$lib/constants'; import { assetViewerManager } from '$lib/managers/asset-viewer-manager.svelte'; import { authManager } from '$lib/managers/auth-manager.svelte'; + import { memoryManager, type MemoryAsset } from '$lib/managers/memory-manager.svelte'; import type { TimelineAsset, Viewport } from '$lib/managers/timeline-manager/types'; import { Route } from '$lib/route'; import { getAssetBulkActions } from '$lib/services/asset.service'; import { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; - import { memoryStore, type MemoryAsset } from '$lib/stores/memory.store.svelte'; import { locale, videoViewerMuted, videoViewerVolume } from '$lib/stores/preferences.store'; import { preferences } from '$lib/stores/user.store'; import { getAssetMediaUrl, handlePromiseError, memoryLaneTitle } from '$lib/utils'; @@ -186,7 +186,7 @@ if (!current) { return; } - memoryStore.hideAssetsFromMemory(ids); + memoryManager.hideAssetsFromMemory(ids); init(page); }; @@ -195,7 +195,7 @@ return; } - await memoryStore.deleteAssetFromMemory(current.asset.id); + await memoryManager.deleteAssetFromMemory(current.asset.id); init(page); }; @@ -204,7 +204,7 @@ return; } - await memoryStore.deleteMemory(current.memory.id); + await memoryManager.deleteMemory(current.memory.id); toastManager.primary($t('removed_memory')); init(page); }; @@ -215,7 +215,7 @@ } const newSavedState = !current.memory.isSaved; - await memoryStore.updateMemorySaved(current.memory.id, newSavedState); + await memoryManager.updateMemorySaved(current.memory.id, newSavedState); toastManager.primary(newSavedState ? $t('added_to_favorites') : $t('removed_from_favorites')); init(page); }; @@ -253,11 +253,11 @@ const loadFromParams = (page: Page | NavigationTarget | null) => { const assetId = page?.params?.assetId ?? page?.url.searchParams.get(QueryParameter.ID) ?? undefined; - return memoryStore.getMemoryAsset(assetId); + return memoryManager.getMemoryAsset(assetId); }; const init = (target: Page | NavigationTarget | null) => { - if (memoryStore.memories.length === 0) { + if (memoryManager.memories.length === 0) { return handlePromiseError(goto(Route.photos())); } @@ -290,7 +290,7 @@ }; afterNavigate(({ from, to }) => { - memoryStore.ready().then( + memoryManager.ready().then( () => { let target; if (to?.params?.assetId) { diff --git a/web/src/lib/stores/memory.store.svelte.ts b/web/src/lib/managers/memory-manager.svelte.ts similarity index 98% rename from web/src/lib/stores/memory.store.svelte.ts rename to web/src/lib/managers/memory-manager.svelte.ts index cdd6af9606..9e34ff2d0e 100644 --- a/web/src/lib/stores/memory.store.svelte.ts +++ b/web/src/lib/managers/memory-manager.svelte.ts @@ -21,7 +21,7 @@ export type MemoryAsset = MemoryIndex & { nextMemory?: MemoryResponseDto; }; -class MemoryStoreSvelte { +class MemoryManager { #loading: Promise | undefined; constructor() { @@ -135,4 +135,4 @@ class MemoryStoreSvelte { } } -export const memoryStore = new MemoryStoreSvelte(); +export const memoryManager = new MemoryManager(); diff --git a/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte index 4d1775d7dc..21f51a8f49 100644 --- a/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte @@ -21,12 +21,12 @@ import Timeline from '$lib/components/timeline/Timeline.svelte'; import { AssetAction } from '$lib/constants'; import { assetViewerManager } from '$lib/managers/asset-viewer-manager.svelte'; + import { memoryManager } from '$lib/managers/memory-manager.svelte'; import { TimelineManager } from '$lib/managers/timeline-manager/timeline-manager.svelte'; import { Route } from '$lib/route'; import { getAssetBulkActions } from '$lib/services/asset.service'; import { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; import { isFaceEditMode } from '$lib/stores/face-edit.svelte'; - import { memoryStore } from '$lib/stores/memory.store.svelte'; import { preferences, user } from '$lib/stores/user.store'; import { getAssetMediaUrl, memoryLaneTitle } from '$lib/utils'; import { @@ -90,7 +90,7 @@ }); const items = $derived( - memoryStore.memories.map((memory) => ({ + memoryManager.memories.map((memory) => ({ id: memory.id, title: $memoryLaneTitle(memory), href: Route.memories({ id: memory.assets[0].id }),