Peer Mentor Multi-Select List
Component Detail
Description
Multi-select version of the peer mentor contact list specifically for bulk mode, allowing coordinators to select several peer mentors simultaneously for a shared group activity. Provides select-all, deselect-all controls and a visible count badge of currently selected mentors.
peer-mentor-multi-select
Summaries
The Peer Mentor Multi-Select List enables coordinators to register a group activity for multiple peer mentors in a single workflow pass, replacing what would otherwise require repeated individual registrations. This bulk capability directly reduces administrative overhead — a coordinator managing a cohort of mentors can complete in one action what previously demanded multiple sessions, freeing up time for higher-value programme work. The built-in validation ensuring at least one selection before proceeding prevents incomplete submissions that would require follow-up corrections, reducing support burden. For organisations running large-scale mentoring programmes, this component is a direct enabler of operational scale without proportional staffing increases.
Rated medium complexity, this component requires careful state management for tracking simultaneous selections across a potentially long scrollable list, which adds implementation and testing effort compared to its single-select counterpart. It depends on proxy-contact-list-provider, so that service layer must be available before integration. Key delivery risks include performance on large contact lists — test with realistic data volumes early. QA must verify select-all and deselect-all edge cases, the selected count badge accuracy, and the minimum-selection validation gate before proceeding.
Unlike the single-selector, this component is not marked shared, so its scope is confined to the bulk registration feature — factor this into prioritisation if the bulk flow has a later delivery milestone than other features.
This mobile UI component manages a multi-selection set over the coordinator's contact list sourced from proxy-contact-list-provider. Core interfaces include loadCoordinatorContacts(coordinatorId) for initial data fetch, toggleSelection(mentorId) which adds or removes a mentor ID from the selection set, selectAll() and deselectAll() for bulk operations, getSelectedMentors() which returns the current selection array, validateMinimumSelection() which enforces at least one selection before allowing progression, and confirmAndProceed(selectedMentorIds) which forwards the full ID array downstream. Selection state should be maintained as a Set
Implement virtual scrolling if contact lists can exceed ~100 entries to avoid layout thrashing on mobile. Consumes peer-mentor and contact data models; ensure the list items display sufficient identity fields (name, role) to allow confident selection at scale.
Responsibilities
- Render coordinator contacts as a scrollable multi-select list
- Track selection state for all contacts simultaneously
- Provide select-all and deselect-all convenience actions
- Display selected count badge and validate at least one selection before proceeding
Interfaces
loadCoordinatorContacts(coordinatorId)
toggleSelection(mentorId)
selectAll()
deselectAll()
getSelectedMentors()
validateMinimumSelection()
confirmAndProceed(selectedMentorIds)