From 6ee1ef73c38607b228ebc3ff675b8626843f4d6f Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 8 Apr 2026 13:09:16 +0200 Subject: [PATCH] feat(ui): add PersonTypeBadge to person list and detail pages Show colored badge for non-PERSON types per design spec: - INSTITUTION: blue with building icon - GROUP: purple with people icon - UNKNOWN: amber with question mark icon - PERSON: no badge (unmarked default) Badge appears on person cards in list and on detail page. Co-Authored-By: Claude Sonnet 4.6 --- .../src/lib/components/PersonTypeBadge.svelte | 50 +++++++++++++++++++ frontend/src/routes/persons/+page.svelte | 5 ++ .../src/routes/persons/[id]/PersonCard.svelte | 8 +++ 3 files changed, 63 insertions(+) create mode 100644 frontend/src/lib/components/PersonTypeBadge.svelte diff --git a/frontend/src/lib/components/PersonTypeBadge.svelte b/frontend/src/lib/components/PersonTypeBadge.svelte new file mode 100644 index 00000000..2bfd1a39 --- /dev/null +++ b/frontend/src/lib/components/PersonTypeBadge.svelte @@ -0,0 +1,50 @@ + + +{#if personType === 'INSTITUTION'} + + + + + {m.person_type_INSTITUTION()} + +{:else if personType === 'GROUP'} + + + + + {m.person_type_GROUP()} + +{:else if personType === 'UNKNOWN'} + + + + + {m.person_type_UNKNOWN()} + +{/if} diff --git a/frontend/src/routes/persons/+page.svelte b/frontend/src/routes/persons/+page.svelte index 9487c82f..9ba5380d 100644 --- a/frontend/src/routes/persons/+page.svelte +++ b/frontend/src/routes/persons/+page.svelte @@ -3,6 +3,7 @@ import { goto } from '$app/navigation'; import { untrack } from 'svelte'; import { m } from '$lib/paraglide/messages.js'; import { formatLifeDateRange } from '$lib/utils/personLifeDates'; +import PersonTypeBadge from '$lib/components/PersonTypeBadge.svelte'; import PersonsStatsBar from './PersonsStatsBar.svelte'; import PersonsEmptyState from './PersonsEmptyState.svelte'; @@ -107,6 +108,10 @@ function handleSearch() { {person.displayName}

+ {#if person.personType && person.personType !== 'PERSON'} + + {/if} + {#if person.alias}

„{person.alias}"

diff --git a/frontend/src/routes/persons/[id]/PersonCard.svelte b/frontend/src/routes/persons/[id]/PersonCard.svelte index 639d58ad..10094d87 100644 --- a/frontend/src/routes/persons/[id]/PersonCard.svelte +++ b/frontend/src/routes/persons/[id]/PersonCard.svelte @@ -1,6 +1,7 @@