diff --git a/web/src/lib/components/asset-viewer/DetailPanel.svelte b/web/src/lib/components/asset-viewer/DetailPanel.svelte index 8753539715..8f627a87b5 100644 --- a/web/src/lib/components/asset-viewer/DetailPanel.svelte +++ b/web/src/lib/components/asset-viewer/DetailPanel.svelte @@ -11,7 +11,7 @@ import { featureFlagsManager } from '$lib/managers/feature-flags-manager.svelte'; import { Route } from '$lib/route'; import { locale } from '$lib/stores/preferences.store'; - import { getAssetMediaUrl, getPeopleThumbnailUrl } from '$lib/utils'; + import { getAssetMediaUrl } from '$lib/utils'; import { delay, getDimensions } from '$lib/utils/asset-utils'; import { getByteUnitString } from '$lib/utils/byte-units'; import { handleError } from '$lib/utils/handle-error'; @@ -24,26 +24,15 @@ type AssetResponseDto, } from '@immich/sdk'; import { Icon, IconButton, LoadingSpinner, Text } from '@immich/ui'; - import { - mdiCamera, - mdiCameraIris, - mdiClose, - mdiEye, - mdiEyeOff, - mdiImageOutline, - mdiInformationOutline, - mdiPencil, - mdiPlus, - } from '@mdi/js'; - import { DateTime } from 'luxon'; + import { mdiCamera, mdiCameraIris, mdiClose, mdiImageOutline, mdiInformationOutline } from '@mdi/js'; import { onDestroy } from 'svelte'; import { t } from 'svelte-i18n'; import { slide } from 'svelte/transition'; - import ImageThumbnail from '../assets/thumbnail/ImageThumbnail.svelte'; import PersonSidePanel from '../faces-page/PersonSidePanel.svelte'; import OnEvents from '../OnEvents.svelte'; import UserAvatar from '../shared-components/UserAvatar.svelte'; import AlbumListItemDetails from './AlbumListItemDetails.svelte'; + import DetailPanelPeople from '$lib/components/asset-viewer/DetailPanelPeople.svelte'; interface Props { asset: AssetResponseDto; @@ -53,8 +42,6 @@ let { asset, currentAlbum = null }: Props = $props(); let isOwner = $derived(authManager.authenticated && authManager.user.id === asset.ownerId); - let people = $derived(asset.people || []); - let unassignedFaces = $derived(asset.unassignedFaces || []); let latlng = $derived( (() => { const lat = asset.exifInfo?.latitude; @@ -162,110 +149,7 @@ - - {#if !authManager.isSharedLink && isOwner} -
-
- {$t('people')} -
- {#if people.some((person) => person.isHidden)} - assetViewerManager.toggleHiddenPeople()} - /> - {/if} - assetViewerManager.toggleFaceEditMode()} - /> - - {#if people.length > 0 || unassignedFaces.length > 0} - assetViewerManager.openEditFacesPanel()} - /> - {/if} -
-
- - -
- {/if} +
{#if asset.exifInfo} diff --git a/web/src/lib/components/asset-viewer/DetailPanelPeople.svelte b/web/src/lib/components/asset-viewer/DetailPanelPeople.svelte new file mode 100644 index 0000000000..2848e7292a --- /dev/null +++ b/web/src/lib/components/asset-viewer/DetailPanelPeople.svelte @@ -0,0 +1,133 @@ + + +{#if !authManager.isSharedLink && isOwner} +
+
+ {$t('people')} +
+ {#if people.some((person) => person.isHidden)} + assetViewerManager.toggleHiddenPeople()} + /> + {/if} + assetViewerManager.toggleFaceEditMode()} + /> + + {#if people.length > 0 || unassignedFaces.length > 0} + assetViewerManager.openEditFacesPanel()} + /> + {/if} +
+
+ + +
+{/if}