Activity Type Selection Screen
Component Detail
Description
Mobile screen shown during the activity registration wizard that allows a peer mentor to pick an activity type from their organisation's catalogue. Renders only active types, applies organisation-specific display labels, and communicates the chosen type (including its metadata) to the wizard orchestrator.
activity-type-selection-screen
Summaries
The Activity Type Selection Screen is the critical decision point in the peer mentoring workflow where mentors categorise the support they are providing. By surfacing only active, organisation-approved activity types with labels tailored to each organisation's terminology, this component ensures that reported activity data is consistent, meaningful, and aligned with how each organisation measures mentoring impact. Clean, accurate activity categorisation directly improves reporting quality, making it easier for programme leaders to demonstrate value, secure funding, and make evidence-based decisions. As a shared component reused across multiple registration flows, it reduces the total cost of ownership by eliminating duplicated UI work and ensuring a uniform experience for mentors regardless of which workflow entry point they use.
The Activity Type Selection Screen has low inherent complexity but carries important upstream and downstream scheduling dependencies. It depends on the activity-type-cache-provider and organization-labels-provider both being stable and integrated before this screen can be completed and tested end-to-end. Any delay in defining the organisation-specific label configuration system will block the final validation of this screen. Because this is a shared component used across features, it must be completed early in the mobile development schedule to avoid blocking dependent wizard screens and user story acceptance tests.
Testing should cover empty states, error states, and loading states, as well as label rendering for at least two organisations to validate the multi-tenancy behaviour. Deployment risk is low given its read-only nature.
Activity Type Selection Screen is a mobile-execution UI component that sits within the activity registration wizard flow. It calls loadActivityTypesForOrg(orgId) against the activity-type-cache-provider, meaning it benefits from cached responses and should handle cache-miss loading states gracefully via displayLoadingState(). Organisation-specific label rendering is delegated entirely to the organization-labels-provider dependency, keeping this component decoupled from label logic. On selection, onActivityTypeSelected(activityType) passes the full ActivityType domain object including metadata to the wizard orchestrator — ensure the payload shape is versioned and stable to avoid wizard breakages.
Implement displayEmptyState() for orgs with no active types and displayErrorState(error) for network/cache failures. The is_shared flag means changes to this component's interface contract will affect all consuming wizard steps and must be coordinated carefully.
Responsibilities
- Display the organisation's active activity types in a tappable list
- Apply organisation-specific display name labels via the labels system
- Return the selected activity type with full metadata to the calling wizard step
Interfaces
loadActivityTypesForOrg(orgId)
onActivityTypeSelected(activityType)
onBackTap()
displayLoadingState()
displayEmptyState()
displayErrorState(error)
Relationships
Dependencies (2)
Components this component depends on
Related Data Entities (1)
Data entities managed by this component