Event Sign-up Flow
Component Detail
Description
Single-tap sign-up and cancellation widget rendered on the event detail screen. Displays current participant count and the user's own registration status, then dispatches an optimistic mutation for immediate UI feedback while queuing the API call in the Drift mutation outbox when offline. Carries a descriptive accessible label naming the specific event and meets the WCAG 2.2 AA 24×24 CSS pixel touch target requirement.
event-sign-up-flow
Sources & reasoning
Primary UI entry point for the feature. Optimistic mutation with offline outbox queuing is the core UX contract; the WCAG 2.2 AA accessible label and touch target size are hard requirements called out in both the implementation notes and source documentation.
No source references — this artifact was included based on reasoning alone (see above).
Responsibilities
- Render sign-up and cancel buttons with accessible labels referencing the specific event name
- Apply optimistic state update on tap and roll back on confirmed API failure
- Display live participant count updated after any sign-up or cancellation action
- Support coordinator proxy mode - allow adding or removing a selected peer mentor as attendee on their behalf
Interfaces
signUp(eventId: String) -> Future<void>
cancelSignUp(eventId: String) -> Future<void>
proxySignUp(eventId: String, targetUserId: String) -> Future<void>
proxyCancel(eventId: String, targetUserId: String) -> Future<void>
observeParticipantStatus(eventId: String, userId: String) -> Stream<bool>
observeParticipantCount(eventId: String) -> Stream<int>
Relationships
Dependencies (2)
Components this component depends on
Related Data Entities (2)
Data entities managed by this component