From f06af2c600f952ee6330b46f4ca2a96f6240c894 Mon Sep 17 00:00:00 2001 From: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com> Date: Mon, 2 Mar 2026 15:18:32 +0100 Subject: [PATCH] refactor(web): dedupe isAllUserOwned logic (#26645) --- .../shared-components/map/MapTimelinePanel.svelte | 3 +-- .../(user)/photos/[[assetId=id]]/+page.svelte | 4 +--- .../[[photos=photos]]/[[assetId=id]]/+page.svelte | 14 ++++---------- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/web/src/lib/components/shared-components/map/MapTimelinePanel.svelte b/web/src/lib/components/shared-components/map/MapTimelinePanel.svelte index 7427cb474f..859a811985 100644 --- a/web/src/lib/components/shared-components/map/MapTimelinePanel.svelte +++ b/web/src/lib/components/shared-components/map/MapTimelinePanel.svelte @@ -57,7 +57,6 @@ return assetInteraction.isAllUserOwned && (isLivePhoto || isLivePhotoCandidate); }); - const isAllUserOwned = $derived($user && selectedAssets.every((asset) => asset.ownerId === $user.id)); const handleLink: OnLink = ({ still, motion }) => { timelineManager.removeAssets([motion.id]); @@ -133,7 +132,7 @@ - {#if isAllUserOwned} + {#if assetInteraction.isAllUserOwned} timelineManager.update(ids, (asset) => (asset.isFavorite = isFavorite))} diff --git a/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte index dd2080a831..31a991fa8f 100644 --- a/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/photos/[[assetId=id]]/+page.svelte @@ -61,8 +61,6 @@ return assetInteraction.isAllUserOwned && (isLivePhoto || isLivePhotoCandidate); }); - const isAllUserOwned = $derived($user && selectedAssets.every((asset) => asset.ownerId === $user.id)); - const handleEscape = () => { if ($showAssetViewer) { return; @@ -135,7 +133,7 @@ - {#if isAllUserOwned} + {#if assetInteraction.isAllUserOwned} timelineManager.update(ids, (asset) => (asset.isFavorite = isFavorite))} diff --git a/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte index 8128a118d0..701bc0ff59 100644 --- a/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -25,7 +25,7 @@ import { getAssetBulkActions } from '$lib/services/asset.service'; import { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; import { lang, locale } from '$lib/stores/preferences.store'; - import { preferences, user } from '$lib/stores/user.store'; + import { preferences } from '$lib/stores/user.store'; import { handlePromiseError } from '$lib/utils'; import { cancelMultiselect } from '$lib/utils/asset-utils'; import { parseUtcDate } from '$lib/utils/date-time'; @@ -69,10 +69,6 @@ let smartSearchEnabled = $derived(featureFlagsManager.value.smartSearch); let terms = $derived(searchQuery ? JSON.parse(searchQuery) : {}); - const isAllUserOwned = $derived( - $user && assetInteraction.selectedAssets.every((asset) => asset.ownerId === $user.id), - ); - $effect(() => { // we want this to *only* be reactive on `terms` // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -344,7 +340,7 @@ onclick={handleSelectAll} /> - {#if isAllUserOwned} + {#if assetInteraction.isAllUserOwned} { @@ -364,10 +360,8 @@ - {#if assetInteraction.isAllUserOwned} - - {/if} - {#if $preferences.tags.enabled && assetInteraction.isAllUserOwned} + + {#if $preferences.tags.enabled} {/if}