diff --git a/server/src/domain/asset/response-dto/asset-response.dto.ts b/server/src/domain/asset/response-dto/asset-response.dto.ts index bacd4bfe68..72c2572563 100644 --- a/server/src/domain/asset/response-dto/asset-response.dto.ts +++ b/server/src/domain/asset/response-dto/asset-response.dto.ts @@ -98,7 +98,7 @@ export function mapAsset(entity: AssetEntity, options: AssetMapOptions = {}): As tags: entity.tags?.map(mapTag), people: entity.faces ?.map(mapFace) - .filter((person): person is PersonResponseDto => person !== null && !person.isHidden) + .filter((person): person is PersonResponseDto => person !== null) .reduce((people, person) => { const existingPerson = people.find((p) => p.id === person.id); if (!existingPerson) { diff --git a/web/src/lib/components/asset-viewer/detail-panel.svelte b/web/src/lib/components/asset-viewer/detail-panel.svelte index 9ca0831b6f..415aa2a3ce 100644 --- a/web/src/lib/components/asset-viewer/detail-panel.svelte +++ b/web/src/lib/components/asset-viewer/detail-panel.svelte @@ -19,8 +19,11 @@ mdiImageOutline, mdiMapMarkerOutline, mdiInformationOutline, + mdiEye, + mdiEyeOff, } from '@mdi/js'; import Icon from '$lib/components/elements/icon.svelte'; + import CircleIconButton from '../elements/buttons/circle-icon-button.svelte'; import Map from '../shared-components/map/map.svelte'; import { websocketStore } from '$lib/stores/websocket'; import { AppRoute } from '$lib/constants'; @@ -57,6 +60,7 @@ })(); $: people = asset.people || []; + $: showingHiddenPeople = false; const unsubscribe = websocketStore.onAssetUpdate.subscribe((assetUpdate) => { if (assetUpdate && assetUpdate.id === asset.id) { @@ -177,25 +181,38 @@ {#if !api.isSharedLink && people.length > 0}
-

PEOPLE

+
+

PEOPLE

+ {#if people.some((person) => person.isHidden)} + (showingHiddenPeople = !showingHiddenPeople)} + /> + {/if} +
-
+