From fffecb5bf684db707815c77f20f1b757ecf4c458 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 29 Mar 2026 20:49:58 +0200 Subject: [PATCH] feat(persons): redesign detail page sections to match Concept A spec - CoCorrespondentsList: white card wrapper with navy initials circles in chips - PersonDocumentList: flat row-divider pattern with variant-tinted icons (sent=navy, received=teal) - Add variant prop (sent/received) to PersonDocumentList and wire up in page - Add person_correspondents_hint i18n key to all three message files Co-Authored-By: Claude Sonnet 4.6 --- frontend/messages/de.json | 1 + frontend/messages/en.json | 1 + frontend/messages/es.json | 1 + frontend/src/routes/persons/[id]/+page.svelte | 2 + .../persons/[id]/CoCorrespondentsList.svelte | 34 +++-- .../persons/[id]/PersonDocumentList.svelte | 121 ++++++++++-------- 6 files changed, 96 insertions(+), 64 deletions(-) diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 2ba463c6..54b4af81 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -120,6 +120,7 @@ "person_role_sender": "Gesendet", "person_role_receiver": "Empfangen", "person_co_correspondents_heading": "Häufige Korrespondenten", + "person_correspondents_hint": "klicken für Konversation", "person_show_more": "+ {count} weitere anzeigen", "conv_heading": "Konversationen", "conv_subtitle": "Verfolgen Sie den Schriftverkehr zwischen zwei Personen chronologisch.", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 695c5980..ab6e3bc0 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -120,6 +120,7 @@ "person_role_sender": "Sent", "person_role_receiver": "Received", "person_co_correspondents_heading": "Frequent correspondents", + "person_correspondents_hint": "click to view conversation", "person_show_more": "+ {count} more", "conv_heading": "Conversations", "conv_subtitle": "Follow the correspondence between two persons chronologically.", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 5e7a3f42..552b6849 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -120,6 +120,7 @@ "person_role_sender": "Enviado", "person_role_receiver": "Recibido", "person_co_correspondents_heading": "Corresponsales frecuentes", + "person_correspondents_hint": "clic para ver conversación", "person_show_more": "+ {count} más", "conv_heading": "Conversaciones", "conv_subtitle": "Siga la correspondencia entre dos personas cronológicamente.", diff --git a/frontend/src/routes/persons/[id]/+page.svelte b/frontend/src/routes/persons/[id]/+page.svelte index 2da3e2f2..e14ea2a5 100644 --- a/frontend/src/routes/persons/[id]/+page.svelte +++ b/frontend/src/routes/persons/[id]/+page.svelte @@ -78,12 +78,14 @@ const coCorrespondents = $derived.by(() => { documents={sentDocuments} heading={m.person_docs_heading()} emptyMessage={m.person_no_docs()} + variant="sent" /> diff --git a/frontend/src/routes/persons/[id]/CoCorrespondentsList.svelte b/frontend/src/routes/persons/[id]/CoCorrespondentsList.svelte index 81855ed2..fc0cc90b 100644 --- a/frontend/src/routes/persons/[id]/CoCorrespondentsList.svelte +++ b/frontend/src/routes/persons/[id]/CoCorrespondentsList.svelte @@ -8,23 +8,43 @@ let { coCorrespondents: { id: string; name: string; count: number }[]; personId: string; } = $props(); + +function initials(name: string): string { + return name + .split(' ') + .map((n) => n[0] ?? '') + .join('') + .slice(0, 2) + .toUpperCase(); +} {#if coCorrespondents.length > 0} -
-

- {m.person_co_correspondents_heading()} -

+
+
+

+ {m.person_co_correspondents_heading()} +

+ {m.person_correspondents_hint()} +
diff --git a/frontend/src/routes/persons/[id]/PersonDocumentList.svelte b/frontend/src/routes/persons/[id]/PersonDocumentList.svelte index 0fbe5d95..cedefbf4 100644 --- a/frontend/src/routes/persons/[id]/PersonDocumentList.svelte +++ b/frontend/src/routes/persons/[id]/PersonDocumentList.svelte @@ -1,15 +1,16 @@ -
-
-

{heading}

- +
+ +
+

{heading}

+ {documents.length} {#if yearRange} - {yearRange} + {yearRange} {/if} {#if documents.length > 1} @@ -62,69 +72,68 @@ const visibleDocuments = $derived(
{#if documents.length === 0} -
-

{emptyMessage}

-
+

{emptyMessage}

{:else} -