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

Description

Role-specific paginated list screen displaying contacts scoped to the authenticated user's role. Peer mentors see only their assigned contacts; coordinators see the full organizational roster. Includes an inline search bar triggering FTS5 queries, empty-state messaging, and WCAG 2.2 AA compliant list items with 4.5:1 contrast, 24ร—24 px touch targets, and semantic screen reader labels.

Feature: Contact List & Search

contact-list-screen

Sources & reasoning

Primary UI surface for this feature. Role-specific rendering and WCAG compliance are explicit requirements from the priority matrix (MUST, Phase 1) and accessibility mandate. The screen must present paginated, searchable contact data filtered by role - all within a single reactive widget consuming the Riverpod provider.

  • docs/source/likeperson.md ยท line 152
    Basic search (contact og notater) | โœ“ | โœ“ | โœ“ | โœ“ | MUST | 1
  • docs/source/likeperson.md ยท line 284
    Contacts list with role-specific views
  • docs/source/likeperson.md ยท line 311
    Kontaktliste og likepersonsoversikt

Responsibilities

  • Render role-scoped contact list with infinite scroll or pagination
  • Display inline full-text search input and pass query to ContactSearchService
  • Show empty-state message when no contacts match the query
  • Meet WCAG 2.2 AA: contrast, touch targets, and screen reader labels
  • Consume Riverpod ContactsRepository provider for reactive state

Interfaces

build(BuildContext) โ†’ Widget
onSearchQueryChanged(String query) โ†’ void
onContactTap(String contactId) โ†’ void
onScrollNearEnd() โ†’ void

Relationships

Dependencies (3)

Components this component depends on