diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index 9e9ab7f399..79e44112d4 100644 --- a/web/src/lib/components/assets/thumbnail/thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/thumbnail.svelte @@ -273,7 +273,7 @@ {#if !!assetOwner}
- {assetOwner.name} + {assetOwner.name}
{/if} diff --git a/web/src/lib/components/photos-page/asset-date-group.svelte b/web/src/lib/components/photos-page/asset-date-group.svelte index 61c283e3fe..10fb20d960 100644 --- a/web/src/lib/components/photos-page/asset-date-group.svelte +++ b/web/src/lib/components/photos-page/asset-date-group.svelte @@ -27,7 +27,6 @@ timelineManager: TimelineManager; assetInteraction: AssetInteraction; albumUsers?: UserResponseDto[]; - onSelect: ({ title, assets }: { title: string; assets: TimelineAsset[] }) => void; onSelectAssets: (asset: TimelineAsset) => void; onSelectAssetCandidates: (asset: TimelineAsset | null) => void; diff --git a/web/src/lib/components/photos-page/asset-grid.svelte b/web/src/lib/components/photos-page/asset-grid.svelte index 5c74cabade..44238dc0b9 100644 --- a/web/src/lib/components/photos-page/asset-grid.svelte +++ b/web/src/lib/components/photos-page/asset-grid.svelte @@ -31,11 +31,11 @@ import { navigate } from '$lib/utils/navigation'; import { getTimes, toTimelineAsset, type ScrubberListener, type TimelineYearMonth } from '$lib/utils/timeline-util'; import { - AlbumUserRole, AssetVisibility, getAssetInfo, type AlbumResponseDto, type PersonResponseDto, + type UserResponseDto, } from '@immich/sdk'; import { modalManager } from '@immich/ui'; import { DateTime } from 'luxon'; @@ -65,6 +65,7 @@ showArchiveIcon?: boolean; isShared?: boolean; album?: AlbumResponseDto | null; + albumUsers?: UserResponseDto[]; person?: PersonResponseDto | null; isShowDeleteConfirmation?: boolean; onSelect?: (asset: TimelineAsset) => void; @@ -84,6 +85,7 @@ showArchiveIcon = false, isShared = false, album = null, + albumUsers = [], person = null, isShowDeleteConfirmation = $bindable(false), onSelect = () => {}, @@ -94,11 +96,11 @@ let { isViewing: showAssetViewer, asset: viewingAsset, preloadAssets, gridScrollTarget, mutex } = assetViewingStore; - const albumUsers = $derived( - album?.shared && album.albumUsers.some(({ role }) => role === AlbumUserRole.Editor) - ? [album.owner, ...album.albumUsers.map(({ user }) => user)] - : [], - ); + // const albumUsers = $derived( + // album?.shared && album.albumUsers.some(({ role }) => role === AlbumUserRole.Editor) + // ? [album.owner, ...album.albumUsers.map(({ user }) => user)] + // : [], + // ); let element: HTMLElement | undefined = $state(); diff --git a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte index 4370d0ec7c..4b7a9f233e 100644 --- a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -71,6 +71,7 @@ } from '@immich/sdk'; import { Button, IconButton, modalManager } from '@immich/ui'; import { + mdiAccountEyeOutline, mdiArrowLeft, mdiCogOutline, mdiDeleteOutline, @@ -104,6 +105,7 @@ let isCreatingSharedAlbum = $state(false); let isShowActivity = $state(false); let albumOrder: AssetOrder | undefined = $state(data.album.order); + let showAlbumUsers = $state(false); const assetInteraction = new AssetInteraction(); const timelineInteraction = new AssetInteraction(); @@ -321,6 +323,11 @@ let album = $derived(data.album); let albumId = $derived(album.id); + const albumUsers = $derived( + showAlbumUsers && album?.shared && album.albumUsers.some(({ role }) => role === AlbumUserRole.Editor) + ? [album.owner, ...album.albumUsers.map(({ user }) => user)] + : [], + ); $effect(() => { if (!album.isActivityEnabled && activityManager.commentCount === 0) { @@ -445,6 +452,7 @@ + (showAlbumUsers = !showAlbumUsers)} + /> + {#if isEditor}