Components
Assignee and work-type filters
Narrow the queue while retaining visible scope and active filter count.
On this page
Purpose and composition
Narrow the queue while retaining visible scope and active filter count.
Use for local triage; do not rewrite the current product scope when filtering.
Anatomy
| Part | Responsibility |
|---|---|
| Trigger | Filter icon, desktop label and active count |
| Assignee | Anyone, Unassigned, active teammates |
| Work type | All work, Support, Sales, General |
| Reset | Clear filters |
Configuration and variants
| Input / variant | Contract |
|---|---|
| assigneeFilter | Local state; all default |
| typeFilter | Local state; all default |
| counts | Derived from the filtered records |
| active count | Number of non-default filter dimensions |
States and feedback
| State | Visible / behavioral result |
|---|---|
| Inactive | Neutral trigger; reset disabled |
| Active | Violet trigger/count |
| Empty result | Source EmptyState |
| Open | 288px popup anchored right |
Interaction and responsive behavior
- Both filters apply before queue counts and visible rows.
- Outside pointerdown closes; Escape also focuses summary.
- On phones the label hides while the filter icon remains.
Accessibility contract
- Source summary has no aria-label when its Filter text is hidden on phone.
- Native selects retain keyboard behavior.
- Review accessible trigger naming before release.
Known implementation limits
Filters are local component state and are not URL-persisted or saved preferences.
Composition example
<ConversationList {...props} /> // assignee/type filters are internalSource references
| File | Responsibility |
|---|---|
| components/inbox/conversation-list.tsx | Internal filter details and derived counts |
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