From 406b6a7f5281c29afc310322bf4d4acf3d24ba66 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 8cf0b7bf..39c77daa 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 5651df83..6929736c 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 44e7aebe..fbdec2aa 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}