User Interface medium complexity mobile
0
Dependencies
0
Dependents
1
Entities
0
Integrations

Description

The primary screen displaying a scrollable list of contacts scoped to the authenticated user's role. Peer mentors see only their own contacts while coordinators see all association-level contacts. Renders offline-cached data from the Drift local database when connectivity is unavailable.

Feature: Contact List & Search

contact-list-screen

Sources & reasoning

Priority matrix (line 162) marks contact search MUST in Phase 1 across all four organizations. MVP scope narrative (line 320) lists contact list as Phase 1. Architecture section (line 291) confirms role-specific list views. Phase 1 in source docs maps to MVP by ordinal position (Fase 1 = first deliverable phase = MVP).

Responsibilities

  • Render role-scoped contact list from local Drift database
  • Display Organisation Labels terminology per tenant configuration
  • Handle offline state gracefully with cached data
  • Meet WCAG 2.2 AA touch target and contrast requirements with semantic VoiceOver/TalkBack labels
  • Coordinate with ContactSearchWidget to filter displayed contacts

Interfaces

loadContacts(userId: string, role: UserRole): Observable<Contact[]>
applyFilter(query: string): void
onContactTap(contactId: string): void

Related Data Entities (1)

Data entities managed by this component