feat(person): add quick link to conversations page #20

Closed
opened 2026-03-19 21:13:38 +01:00 by marcel · 0 comments
Owner

User Journey

Anna is on Heinrich's person page after reading through his sent documents. She wants to explore the correspondence between Heinrich and Maria — but she has to navigate away to /conversations, then manually type or search for both names.

With this feature, Anna sees a "Konversationen anzeigen" button on Heinrich's page. She clicks it and lands directly on /conversations?senderId=<Heinrich's id> with Heinrich pre-filled as Person A, ready to pick a second person.


High-Level Plan

Add a single anchor link on the person detail page that navigates to the conversations page with this person's ID pre-set as senderId. Pure frontend, no backend changes.


Detailed Plan

Frontend only

  1. Button placement — add a secondary action link in the header area of persons/[id]/+page.svelte, next to or below the existing edit button. Use the "subtle action link" pattern from CLAUDE.md:

    <a
        href="/conversations?senderId={person.id}"
        class="inline-flex items-center gap-1 text-sm font-medium text-brand-navy/60 hover:text-brand-navy transition-colors"
    >
        <!-- chat bubble icon -->
        {m.person_btn_conversations()}
    </a>
    
  2. i18n — add translation key person_btn_conversations to de.json, en.json, es.json:

    • DE: "Konversationen anzeigen"
    • EN: "View conversations"
    • ES: "Ver conversaciones"
  3. The conversations page already supports ?senderId= as a query param (pre-fills Person A in the typeahead). No changes needed there.

Acceptance Criteria

  • Link is visible on every person detail page
  • Clicking it opens /conversations with this person pre-filled as Person A
  • Link text is translated in all three languages
  • No backend changes, no additional API calls
## User Journey Anna is on Heinrich's person page after reading through his sent documents. She wants to explore the correspondence between Heinrich and Maria — but she has to navigate away to `/conversations`, then manually type or search for both names. With this feature, Anna sees a **"Konversationen anzeigen"** button on Heinrich's page. She clicks it and lands directly on `/conversations?senderId=<Heinrich's id>` with Heinrich pre-filled as Person A, ready to pick a second person. --- ## High-Level Plan Add a single anchor link on the person detail page that navigates to the conversations page with this person's ID pre-set as `senderId`. Pure frontend, no backend changes. --- ## Detailed Plan ### Frontend only 1. **Button placement** — add a secondary action link in the header area of `persons/[id]/+page.svelte`, next to or below the existing edit button. Use the "subtle action link" pattern from `CLAUDE.md`: ```svelte <a href="/conversations?senderId={person.id}" class="inline-flex items-center gap-1 text-sm font-medium text-brand-navy/60 hover:text-brand-navy transition-colors" > <!-- chat bubble icon --> {m.person_btn_conversations()} </a> ``` 2. **i18n** — add translation key `person_btn_conversations` to `de.json`, `en.json`, `es.json`: - DE: `"Konversationen anzeigen"` - EN: `"View conversations"` - ES: `"Ver conversaciones"` 3. The conversations page already supports `?senderId=` as a query param (pre-fills Person A in the typeahead). No changes needed there. ### Acceptance Criteria - [ ] Link is visible on every person detail page - [ ] Clicking it opens `/conversations` with this person pre-filled as Person A - [ ] Link text is translated in all three languages - [ ] No backend changes, no additional API calls
marcel added reference feat/person-conversations-link 2026-03-19 22:27:04 +01:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marcel/familienarchiv#20