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

Description

Scrollable list widget displaying peer mentors selected for a bulk registration. Each row shows the mentor's name, a duplicate-conflict badge if applicable, and a remove button.

Feature: Proxy & Bulk Activity Registration

bulk-participant-list

Summaries

The Bulk Participant List Widget directly supports coordinator productivity by enabling efficient management of multiple peer mentors in a single registration session. By surfacing duplicate conflicts inline—before submission—this component prevents erroneous records from entering the system, reducing data correction overhead and protecting the integrity of participation reporting. Clean, actionable participant management translates to faster program administration, fewer support escalations, and higher coordinator satisfaction, all of which contribute to lower operational costs and a more reliable audit trail for compliance and funding purposes.

This is a low-complexity mobile UI widget with no external dependencies, making it a straightforward deliverable with minimal integration risk. Development effort is primarily focused on list rendering, conflict badge display, and remove-action callbacks. Testing requirements include empty-state rendering, duplicate badge visibility, and remove interaction correctness. Since it has no service dependencies, it can be developed and tested in isolation using mock participant data.

It should be scheduled early in the sprint as a foundational UI building block that other bulk-registration screens depend on for visual consistency and interaction patterns.

Implemented as a stateless Flutter widget accepting a `List` and two callback hooks: `onRemoveParticipant(String mentorId)` and `onAddMoreTapped()`. Each list row renders the mentor's display name, conditionally shows a duplicate-conflict badge based on the `BulkParticipant.hasConflict` flag, and exposes a remove button that fires the parent callback. The empty-state branch renders a call-to-action prompting the user to add participants. State is managed entirely by the parent BLoC; this widget is purely presentational.

Use `ListView.builder` for performance with large lists. The `BulkParticipant` model must carry the peer-mentor entity reference and conflict resolution status.

Responsibilities

  • Render selected participants with duplicate status indicators
  • Allow individual participants to be removed from the batch
  • Show empty-state call to action when no participants have been added

Interfaces

build(BuildContext context, List<BulkParticipant> participants)
onRemoveParticipant(String mentorId)
onAddMoreTapped()

Relationships

Dependents (1)

Components that depend on this component