From b7e3b48a4417c9ae92c40ec9dd760b50a5f2243c Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Fri, 22 Aug 2025 17:29:03 -0400 Subject: [PATCH 01/12] - pass available album users along to the thumbnail through the asset-date-group - show a small user-avatar in bottom right of thumbnail --- .../assets/thumbnail/thumbnail.svelte | 13 ++++++++++++- .../photos-page/asset-date-group.svelte | 4 ++++ .../components/photos-page/asset-grid.svelte | 18 +++++++++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index e4b590b8ea..8c9f58b239 100644 --- a/web/src/lib/components/assets/thumbnail/thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/thumbnail.svelte @@ -5,7 +5,7 @@ import { getAssetPlaybackUrl, getAssetThumbnailUrl } from '$lib/utils'; import { timeToSeconds } from '$lib/utils/date-time'; import { getAltText } from '$lib/utils/thumbnail-util'; - import { AssetMediaSize, AssetVisibility } from '@immich/sdk'; + import { AssetMediaSize, AssetVisibility, type UserResponseDto } from '@immich/sdk'; import { mdiArchiveArrowDownOutline, mdiCameraBurst, @@ -17,6 +17,7 @@ } from '@mdi/js'; import { thumbhash } from '$lib/actions/thumbhash'; + import UserAvatar from '$lib/components/shared-components/user-avatar.svelte'; import { authManager } from '$lib/managers/auth-manager.svelte'; import type { TimelineAsset } from '$lib/managers/timeline-manager/types'; import { mobileDevice } from '$lib/stores/mobile-device.svelte'; @@ -45,6 +46,7 @@ imageClass?: ClassValue; brokenAssetClass?: ClassValue; dimmed?: boolean; + albumUsers?: UserResponseDto[]; onClick?: (asset: TimelineAsset) => void; onSelect?: (asset: TimelineAsset) => void; onMouseEvent?: (event: { isMouseOver: boolean; selectedGroupIndex: number }) => void; @@ -63,6 +65,7 @@ readonly = false, showArchiveIcon = false, showStackedIcon = true, + albumUsers = [], onClick = undefined, onSelect = undefined, onMouseEvent = undefined, @@ -84,6 +87,8 @@ let width = $derived(thumbnailSize || thumbnailWidth || 235); let height = $derived(thumbnailSize || thumbnailHeight || 235); + let assetOwner = $derived(albumUsers?.find((user) => user.id === asset.ownerId) ?? null); + const onIconClickedHandler = (e?: MouseEvent) => { e?.stopPropagation(); e?.preventDefault(); @@ -267,6 +272,12 @@ {/if} + {#if !!assetOwner} +
+ +
+ {/if} + {#if !authManager.isSharedLink && showArchiveIcon && asset.visibility === AssetVisibility.Archive}
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 6fab96c3ec..61c283e3fe 100644 --- a/web/src/lib/components/photos-page/asset-date-group.svelte +++ b/web/src/lib/components/photos-page/asset-date-group.svelte @@ -9,6 +9,7 @@ import { isSelectingAllAssets } from '$lib/stores/assets-store.svelte'; import { uploadAssetsStore } from '$lib/stores/upload'; import { navigate } from '$lib/utils/navigation'; + import type { UserResponseDto } from '@immich/sdk'; import { mdiCheckCircle, mdiCircleOutline } from '@mdi/js'; @@ -25,6 +26,7 @@ monthGroup: MonthGroup; timelineManager: TimelineManager; assetInteraction: AssetInteraction; + albumUsers?: UserResponseDto[]; onSelect: ({ title, assets }: { title: string; assets: TimelineAsset[] }) => void; onSelectAssets: (asset: TimelineAsset) => void; @@ -40,6 +42,7 @@ monthGroup = $bindable(), assetInteraction, timelineManager, + albumUsers = [], onSelect, onSelectAssets, onSelectAssetCandidates, @@ -189,6 +192,7 @@ showStackedIcon={withStacked} {showArchiveIcon} {asset} + {albumUsers} {groupIndex} onClick={(asset) => onClick(timelineManager, dayGroup.getAssets(), dayGroup.groupTitle, asset)} onSelect={(asset) => assetSelectHandler(timelineManager, asset, dayGroup.getAssets(), dayGroup.groupTitle)} diff --git a/web/src/lib/components/photos-page/asset-grid.svelte b/web/src/lib/components/photos-page/asset-grid.svelte index 69faf8e1e5..d2f44c5257 100644 --- a/web/src/lib/components/photos-page/asset-grid.svelte +++ b/web/src/lib/components/photos-page/asset-grid.svelte @@ -30,7 +30,13 @@ import { archiveAssets, cancelMultiselect, selectAllAssets, stackAssets } from '$lib/utils/asset-utils'; import { navigate } from '$lib/utils/navigation'; import { getTimes, toTimelineAsset, type ScrubberListener, type TimelineYearMonth } from '$lib/utils/timeline-util'; - import { AssetVisibility, getAssetInfo, type AlbumResponseDto, type PersonResponseDto } from '@immich/sdk'; + import { + AssetVisibility, + getAssetInfo, + type AlbumResponseDto, + type PersonResponseDto, + type UserResponseDto, + } from '@immich/sdk'; import { modalManager } from '@immich/ui'; import { DateTime } from 'luxon'; import { onMount, type Snippet } from 'svelte'; @@ -88,6 +94,15 @@ let { isViewing: showAssetViewer, asset: viewingAsset, preloadAssets, gridScrollTarget, mutex } = assetViewingStore; + const isUser = (user: UserResponseDto | undefined): user is UserResponseDto => { + return !!user; + }; + const albumUsers = $derived( + album?.shared && album?.albumUsers.length + ? [album?.owner, ...(album?.albumUsers?.map(({ user }) => user) ?? [])].filter((element) => isUser(element)) + : [], + ); + let element: HTMLElement | undefined = $state(); let timelineElement: HTMLElement | undefined = $state(); @@ -936,6 +951,7 @@ {isSelectionMode} {singleSelect} {monthGroup} + {albumUsers} onSelect={({ title, assets }) => handleGroupSelect(timelineManager, title, assets)} onSelectAssetCandidates={handleSelectAssetCandidates} onSelectAssets={handleSelectAssets} From 104f3dfcc3a12ca1e72e2be6f577d3fe966cee2c Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sat, 23 Aug 2025 00:54:50 -0400 Subject: [PATCH 02/12] - change owner to their name in white text instead of the avatar --- web/src/lib/components/assets/thumbnail/thumbnail.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index 8c9f58b239..7ce623f214 100644 --- a/web/src/lib/components/assets/thumbnail/thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/thumbnail.svelte @@ -273,8 +273,8 @@ {/if} {#if !!assetOwner} -
- +
+ {assetOwner.name}
{/if} From a02635f9a52d9b55f96aabfaedf7ea2dcd1865b8 Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sat, 23 Aug 2025 00:57:50 -0400 Subject: [PATCH 03/12] cleanup --- web/src/lib/components/assets/thumbnail/thumbnail.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index 7ce623f214..096addd966 100644 --- a/web/src/lib/components/assets/thumbnail/thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/thumbnail.svelte @@ -17,7 +17,6 @@ } from '@mdi/js'; import { thumbhash } from '$lib/actions/thumbhash'; - import UserAvatar from '$lib/components/shared-components/user-avatar.svelte'; import { authManager } from '$lib/managers/auth-manager.svelte'; import type { TimelineAsset } from '$lib/managers/timeline-manager/types'; import { mobileDevice } from '$lib/stores/mobile-device.svelte'; From 251e644b2a0286307b06cb9b9f3330b2e2d9673b Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sat, 23 Aug 2025 01:09:51 -0400 Subject: [PATCH 04/12] - cleanup albumUsers creation - use font-light for the user's name --- web/src/lib/components/assets/thumbnail/thumbnail.svelte | 2 +- web/src/lib/components/photos-page/asset-grid.svelte | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index 096addd966..9e9ab7f399 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-grid.svelte b/web/src/lib/components/photos-page/asset-grid.svelte index d2f44c5257..f4c6ab6fda 100644 --- a/web/src/lib/components/photos-page/asset-grid.svelte +++ b/web/src/lib/components/photos-page/asset-grid.svelte @@ -31,6 +31,7 @@ import { navigate } from '$lib/utils/navigation'; import { getTimes, toTimelineAsset, type ScrubberListener, type TimelineYearMonth } from '$lib/utils/timeline-util'; import { + AlbumUserRole, AssetVisibility, getAssetInfo, type AlbumResponseDto, @@ -94,13 +95,8 @@ let { isViewing: showAssetViewer, asset: viewingAsset, preloadAssets, gridScrollTarget, mutex } = assetViewingStore; - const isUser = (user: UserResponseDto | undefined): user is UserResponseDto => { - return !!user; - }; const albumUsers = $derived( - album?.shared && album?.albumUsers.length - ? [album?.owner, ...(album?.albumUsers?.map(({ user }) => user) ?? [])].filter((element) => isUser(element)) - : [], + album?.shared && album?.albumUsers.filter(({ role }) => role === AlbumUserRole.Editor).length > 0 ? [album.owner, ...album.albumUsers.map(({ user }) => user)] : [], ); let element: HTMLElement | undefined = $state(); From 8896b2dbf5ff064a50d89054ccb7c46c2cdd902c Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sat, 23 Aug 2025 01:11:10 -0400 Subject: [PATCH 05/12] fix lint --- web/src/lib/components/photos-page/asset-grid.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/lib/components/photos-page/asset-grid.svelte b/web/src/lib/components/photos-page/asset-grid.svelte index f4c6ab6fda..b39b2557e4 100644 --- a/web/src/lib/components/photos-page/asset-grid.svelte +++ b/web/src/lib/components/photos-page/asset-grid.svelte @@ -96,7 +96,7 @@ let { isViewing: showAssetViewer, asset: viewingAsset, preloadAssets, gridScrollTarget, mutex } = assetViewingStore; const albumUsers = $derived( - album?.shared && album?.albumUsers.filter(({ role }) => role === AlbumUserRole.Editor).length > 0 ? [album.owner, ...album.albumUsers.map(({ user }) => user)] : [], + album?.shared && album.albumUsers.some(({ role }) => role === AlbumUserRole.Editor) ? [album.owner, ...album.albumUsers.map(({ user }) => user)] : [], ); let element: HTMLElement | undefined = $state(); From d0b49846dc1bd63cc8f2a813c2766ff439f7e888 Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sat, 23 Aug 2025 01:12:37 -0400 Subject: [PATCH 06/12] format --- web/src/lib/components/photos-page/asset-grid.svelte | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web/src/lib/components/photos-page/asset-grid.svelte b/web/src/lib/components/photos-page/asset-grid.svelte index b39b2557e4..5c74cabade 100644 --- a/web/src/lib/components/photos-page/asset-grid.svelte +++ b/web/src/lib/components/photos-page/asset-grid.svelte @@ -31,12 +31,11 @@ import { navigate } from '$lib/utils/navigation'; import { getTimes, toTimelineAsset, type ScrubberListener, type TimelineYearMonth } from '$lib/utils/timeline-util'; import { - AlbumUserRole, + AlbumUserRole, AssetVisibility, getAssetInfo, type AlbumResponseDto, type PersonResponseDto, - type UserResponseDto, } from '@immich/sdk'; import { modalManager } from '@immich/ui'; import { DateTime } from 'luxon'; @@ -96,7 +95,9 @@ 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)] : [], + album?.shared && album.albumUsers.some(({ role }) => role === AlbumUserRole.Editor) + ? [album.owner, ...album.albumUsers.map(({ user }) => user)] + : [], ); let element: HTMLElement | undefined = $state(); From 6e0005acfde2cc2361c2e250a9bef9be8f3cd303 Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Mon, 25 Aug 2025 19:55:25 -0400 Subject: [PATCH 07/12] - add toggle to show/hide asset owner names --- .../assets/thumbnail/thumbnail.svelte | 2 +- .../photos-page/asset-date-group.svelte | 1 - .../components/photos-page/asset-grid.svelte | 14 ++++++++------ .../[[assetId=id]]/+page.svelte | 17 +++++++++++++++++ 4 files changed, 26 insertions(+), 8 deletions(-) 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} Date: Sun, 23 Nov 2025 21:01:33 -0500 Subject: [PATCH 08/12] update new Timeline with albumUsers --- web/src/lib/components/timeline/Timeline.svelte | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/src/lib/components/timeline/Timeline.svelte b/web/src/lib/components/timeline/Timeline.svelte index 0a209fcde3..4d7d7e85c5 100644 --- a/web/src/lib/components/timeline/Timeline.svelte +++ b/web/src/lib/components/timeline/Timeline.svelte @@ -48,6 +48,7 @@ showArchiveIcon?: boolean; isShared?: boolean; album?: AlbumResponseDto | null; + albumUsers?: UserResponseDto[]; person?: PersonResponseDto | null; isShowDeleteConfirmation?: boolean; onSelect?: (asset: TimelineAsset) => void; @@ -80,6 +81,7 @@ showArchiveIcon = false, isShared = false, album = null, + albumUsers = [], person = null, isShowDeleteConfirmation = $bindable(false), onSelect = () => {}, @@ -657,6 +659,7 @@ {isSelectionMode} {singleSelect} {monthGroup} + {albumUsers} onSelect={({ title, assets }) => handleGroupSelect(timelineManager, title, assets)} onSelectAssetCandidates={handleSelectAssetCandidates} onSelectAssets={handleSelectAssets} From c0afde91a7438dbac6cab499a346e892ea49f836 Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sun, 23 Nov 2025 21:33:13 -0500 Subject: [PATCH 09/12] add @idubnori suggestion for the name font --- web/src/lib/components/assets/thumbnail/thumbnail.svelte | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index 7f5ba19e82..0859a9d527 100644 --- a/web/src/lib/components/assets/thumbnail/thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/thumbnail.svelte @@ -273,9 +273,11 @@ {/if} {#if !!assetOwner} -
- {assetOwner.name} -
+
+

+ {assetOwner.name} +

+
{/if} {#if !authManager.isSharedLink && showArchiveIcon && asset.visibility === AssetVisibility.Archive} From f353c99223b2fd5a2cfdad0a8815bca452bf475d Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sun, 23 Nov 2025 21:49:47 -0500 Subject: [PATCH 10/12] Don't show 'view owners' button if the album doesn't have editors --- .../[[assetId=id]]/+page.svelte | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) 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 869257dfce..f70488ae23 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 @@ -291,10 +291,10 @@ let album = $derived(data.album); let albumId = $derived(album.id); + + const containsEditors = $derived(album?.shared && album.albumUsers.some(({ role }) => role === AlbumUserRole.Editor)); const albumUsers = $derived( - showAlbumUsers && album?.shared && album.albumUsers.some(({ role }) => role === AlbumUserRole.Editor) - ? [album.owner, ...album.albumUsers.map(({ user }) => user)] - : [], + showAlbumUsers && containsEditors ? [album.owner, ...album.albumUsers.map(({ user }) => user)] : [], ); $effect(() => { @@ -597,14 +597,16 @@ {#snippet trailing()} - (showAlbumUsers = !showAlbumUsers)} - /> + {#if containsEditors} + (showAlbumUsers = !showAlbumUsers)} + /> + {/if} {#if isEditor} Date: Sun, 23 Nov 2025 21:52:14 -0500 Subject: [PATCH 11/12] add missing import --- web/src/lib/components/timeline/Timeline.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/lib/components/timeline/Timeline.svelte b/web/src/lib/components/timeline/Timeline.svelte index 4d7d7e85c5..a69c092dc5 100644 --- a/web/src/lib/components/timeline/Timeline.svelte +++ b/web/src/lib/components/timeline/Timeline.svelte @@ -21,7 +21,7 @@ import { mobileDevice } from '$lib/stores/mobile-device.svelte'; import { isAssetViewerRoute } from '$lib/utils/navigation'; import { getTimes, type ScrubberListener } from '$lib/utils/timeline-util'; - import { type AlbumResponseDto, type PersonResponseDto } from '@immich/sdk'; + import { type AlbumResponseDto, type PersonResponseDto, type UserResponseDto } from '@immich/sdk'; import { DateTime } from 'luxon'; import { onDestroy, onMount, type Snippet } from 'svelte'; import type { UpdatePayload } from 'vite'; From b687237d8f4ec79c0c7c36b6f91a13cafadd2172 Mon Sep 17 00:00:00 2001 From: CJPeckover Date: Sun, 23 Nov 2025 22:03:16 -0500 Subject: [PATCH 12/12] format --- .../lib/components/assets/thumbnail/thumbnail.svelte | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index 0859a9d527..60ac2ac26c 100644 --- a/web/src/lib/components/assets/thumbnail/thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/thumbnail.svelte @@ -273,11 +273,11 @@ {/if} {#if !!assetOwner} -
-

- {assetOwner.name} -

-
+
+

+ {assetOwner.name} +

+
{/if} {#if !authManager.isSharedLink && showArchiveIcon && asset.visibility === AssetVisibility.Archive}