From 7bd477d24ef87ac7e78ce17a6d647f804ca25191 Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 8 May 2026 12:49:09 +0200 Subject: [PATCH] feat(dashboard): empty-state message for ReaderPersonChips When the top-persons fetch returns an empty list (or fails and degrades to []), the chip area used to render the heading and the view-all link with nothing in between, looking like a load failure. Adds dashboard_reader_no_persons (de/en/es) and renders it above the chip row. Co-Authored-By: Claude Opus 4.7 --- frontend/messages/de.json | 1 + frontend/messages/en.json | 1 + frontend/messages/es.json | 1 + frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte | 3 +++ .../lib/shared/dashboard/ReaderPersonChips.svelte.spec.ts | 6 ++++++ 5 files changed, 12 insertions(+) diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 4bfa4b62..6e07a47f 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -452,6 +452,7 @@ "dashboard_reader_stats_persons": "Personen", "dashboard_reader_stats_stories": "Geschichten", "dashboard_reader_person_chips_heading": "Personen", + "dashboard_reader_no_persons": "Noch keine Personen im Archiv.", "dashboard_reader_all_persons": "Alle Personen →", "dashboard_reader_drafts_heading": "Meine Entwürfe", "dashboard_reader_drafts_empty": "Keine Entwürfe", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index b7bdff0b..1f120c98 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -452,6 +452,7 @@ "dashboard_reader_stats_persons": "Persons", "dashboard_reader_stats_stories": "Stories", "dashboard_reader_person_chips_heading": "Persons", + "dashboard_reader_no_persons": "No persons in the archive yet.", "dashboard_reader_all_persons": "All Persons →", "dashboard_reader_drafts_heading": "My Drafts", "dashboard_reader_drafts_empty": "No drafts", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 5300ef4d..e24244bb 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -452,6 +452,7 @@ "dashboard_reader_stats_persons": "Personas", "dashboard_reader_stats_stories": "Historias", "dashboard_reader_person_chips_heading": "Personas", + "dashboard_reader_no_persons": "Todavía no hay personas en el archivo.", "dashboard_reader_all_persons": "Todas las personas →", "dashboard_reader_drafts_heading": "Mis borradores", "dashboard_reader_drafts_empty": "Sin borradores", diff --git a/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte b/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte index 467dcebf..36b81df5 100644 --- a/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte +++ b/frontend/src/lib/shared/dashboard/ReaderPersonChips.svelte @@ -31,6 +31,9 @@ const { persons }: Props = $props();

{m.dashboard_reader_person_chips_heading()}

+ {#if persons.length === 0} +

{m.dashboard_reader_no_persons()}

+ {/if}