Peer Mentor Single Selector
Component Detail
Description
Searchable list of peer mentors drawn from the coordinator's existing contact list, allowing selection of exactly one peer mentor for single-proxy registration. Reuses the contact list data already available in the app and applies a single-select constraint for this flow.
peer-mentor-single-selector
Summaries
The Peer Mentor Single Selector streamlines coordinator workflows by surfacing an existing contact list directly within the registration flow, eliminating the need to manually enter or look up mentor details. This reduces friction in the proxy registration process, decreasing the time coordinators spend on administrative tasks and lowering the risk of input errors that can delay participant onboarding. By reusing data already present in the application, the organization avoids redundant data entry costs and maintains consistency in mentor records. The improved coordinator experience translates directly to faster activity setup, meaning participants receive support sooner — a measurable improvement in service delivery quality and operational efficiency.
This component is rated low complexity and is marked as shared, meaning it can be reused across multiple features once built, reducing total development effort across the project. The primary dependency is the proxy-contact-list-provider, which must be completed or at least interface-stable before integration work begins — coordinate with the team responsible for that provider to avoid blocking. Testing scope includes single-selection enforcement, search functionality correctness, and correct propagation of the selected mentor ID downstream to the proxy activity wizard. Since it is a mobile UI component, QA must cover both iOS and Android form factors.
Its shared status means any breaking change to its interface will require regression testing across all consuming features.
This mobile UI component exposes five key interfaces: loadCoordinatorContacts(coordinatorId) fetches the contact list from the proxy-contact-list-provider dependency, searchContacts(query) performs client-side or delegated filtering, selectPeerMentor(mentorId) enforces the single-selection constraint by replacing any existing selection, clearSelection() resets state, and confirmAndProceed(selectedMentorId) passes the chosen mentor identity downstream into the proxy activity wizard flow. The component consumes the peer-mentor and contact data models. As a shared component, maintain a stable public interface and avoid embedding feature-specific logic. Implement search with debounce to prevent excessive re-renders.
Selection state should be managed locally with a single selectedId value, not a collection, to enforce the single-select constraint at the component level rather than relying on callers.
Responsibilities
- Display coordinator's peer mentor contacts in a searchable list
- Enforce single-selection constraint
- Pass selected peer mentor identity downstream to the proxy activity wizard
Interfaces
loadCoordinatorContacts(coordinatorId)
searchContacts(query)
selectPeerMentor(mentorId)
clearSelection()
confirmAndProceed(selectedMentorId)