feat(person-mention): empty-state link to create the missing person

Leonie #5507 §5 + ReqEng #5510 §3: when the typeahead returned zero
results, the user was told their search failed and given no path to
recovery. Mirror PersonTypeahead's behaviour: offer a "Neue Person
anlegen →" link that opens /persons/new?name={query} in a new tab so
the transcriber doesn't lose their in-progress block.

Adds person_mention_create_new in de/en/es.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-29 01:15:41 +02:00
parent 86ad5ca9b3
commit 09f71a2dce
4 changed files with 14 additions and 1 deletions

View File

@@ -425,6 +425,7 @@
"person_mention_load_error": "Person konnte nicht geladen werden.",
"person_mention_popup_empty": "Keine Personen gefunden",
"person_mention_btn_label": "Person verlinken",
"person_mention_create_new": "Neue Person anlegen",
"page_title_home": "Archiv",
"page_title_persons": "Personen",
"page_title_admin": "Administration",

View File

@@ -425,6 +425,7 @@
"person_mention_load_error": "Could not load person.",
"person_mention_popup_empty": "No persons found",
"person_mention_btn_label": "Link person",
"person_mention_create_new": "Create new person",
"page_title_home": "Archive",
"page_title_persons": "Persons",
"page_title_admin": "Administration",

View File

@@ -425,6 +425,7 @@
"person_mention_load_error": "No se pudo cargar la persona.",
"person_mention_popup_empty": "No se encontraron personas",
"person_mention_btn_label": "Vincular persona",
"person_mention_create_new": "Crear nueva persona",
"page_title_home": "Archivo",
"page_title_persons": "Personas",
"page_title_admin": "Administración",

View File

@@ -217,7 +217,17 @@ const popupOpen = $derived(query !== null);
{#if loading}
<p class="px-3 py-2 font-sans text-sm text-ink-3">{m.comp_typeahead_loading()}</p>
{:else if results.length === 0}
<p class="px-3 py-2 font-sans text-sm text-ink-3">{m.person_mention_popup_empty()}</p>
<div class="flex flex-col gap-2 px-3 py-2.5">
<p class="font-sans text-sm text-ink-3">{m.person_mention_popup_empty()}</p>
<a
href="/persons/new?name={encodeURIComponent(query ?? '')}"
target="_blank"
rel="noopener"
class="font-sans text-sm font-medium text-brand-navy underline-offset-2 hover:underline"
>
{m.person_mention_create_new()}
</a>
</div>
{:else}
{#each results as person, i (person.id)}
<div