Components
Person overview sheet
Inspect customer context while preserving a new-message draft.
On this page
Purpose and composition
Inspect customer context while preserving a new-message draft.
Use for quick inspection; the full person profile is a separate view.
Anatomy
| Part | Responsibility |
|---|---|
| Identity | Name, organization and email |
| Owner | Relationship responsibility |
| Relationships | Customer/prospect context |
| History | Related conversations |
Configuration and variants
| Input / variant | Contract |
|---|---|
| contact | Optional; absent returns null |
| conversations | History filtered for contact |
| onConversationSelect | Parent changes destination |
| open/onClose | Controlled sheet |
States and feedback
| State | Visible / behavioral result |
|---|---|
| Open | Right-side sheet |
| No contact | No sheet |
| History selected | Parent can leave draft context |
Interaction and responsive behavior
- HelpdeskApp opens this overview from compose context.
- Reading context need not clear draft fields.
- A history navigation can intentionally leave compose.
Accessibility contract
- Native modal sheet supplies focus containment.
- Metadata must wrap at phone width.
Known implementation limits
Draft preservation across route changes is not durable storage. Dialog naming remains a shared gap.
Composition example
<ContactDrawer open={open} contact={person} conversations={records} onClose={close} onConversationSelect={openThread} />Source references
| File | Responsibility |
|---|---|
| components/inbox/contact-drawer.tsx | ContactDrawer |
| components/helpdesk-app.tsx | Compose preview state |
Examples from the app
Actual Sonarist components with fictional conversations, people, example.com addresses and simulated operational states. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0