Set Event Hosts
As a Host, I want to set a list of users as hosts of an event, So that multiple people can manage and coordinate the event together.
Acceptance Criteria
Section titled “Acceptance Criteria”- Given I am creating or editing an event
- When I set event hosts
- Then I can select from a list of available users in the system
- And I can add multiple users as hosts
- And I can remove users from the host list
- And the event creator is automatically included as a host (cannot be removed)
- And each host can:
- View the event details
- Edit the event (if permissions allow)
- Manage the guest list
- Manage the menu
- Generate shopping lists
- Update event status
- And all hosts are displayed on the event detail screen
- And I can see which users are hosts vs. guests for the event
Implementation Status
Section titled “Implementation Status”✅ FULLY IMPLEMENTED (January 2026)
Priority
Section titled “Priority”Medium - Important for collaborative event management
Related Entities
Section titled “Related Entities”- Event, User, UserProfile, EventHost
Related Commands
Section titled “Related Commands”SetEventHosts(to be defined)AddEventHost(to be defined)RemoveEventHost(to be defined)
Implementation Notes
Section titled “Implementation Notes”Implementation:
-
Users Data: ✅
- Created
shaker/data/users/index.tswith sample users - Includes current user from settings profile (if available)
getAllUsers()- Returns sample users + current user from settingsgetUserById()- Get user by IDgetUsersByIds()- Get multiple users by IDs
- Created
-
Event Interface Updates: ✅
- Updated
Eventinterface inEventCard.tsxto include:hosts?: Array<{ id, name, email, isCreator }>- List of event hostscreatedBy?: string- User ID of event creator
- Updated
-
EventHosts Component: ✅
- Created
shaker/components/EventHosts.tsxcomponent - Displays list of current hosts with names and emails
- Shows “Creator” badge for event creator
- Shows “You” badge for current user
- Add host button opens modal with user search
- Remove host button (disabled for creator)
- Creator cannot be removed from host list
- Search functionality to find users by name or email
- Created
-
Event Detail Screen Integration: ✅
- Added “Hosts” section to event detail screen
- Displays after “Details” section and before “Menu” section
- Shows all hosts with management capabilities
- Updates hosts list (currently shows success alert, ready for backend integration)
-
Sample Data: ✅
- Updated sample events to include
createdByandhostsfields - First event includes sample hosts for demonstration
- Updated sample events to include
Files Created:
shaker/data/users/index.ts- Users data with sample users + current usershaker/components/EventHosts.tsx- Event hosts management component
Files Modified:
shaker/components/EventCard.tsx- Added hosts and createdBy to Event interfaceshaker/app/(tabs)/events/[id].tsx- Added hosts section to event detail screenshaker/data/events/index.ts- Added sample hosts to first eventshaker/components/index.ts- Exported EventHosts component
Features:
- ✅ Select from list of available users (sample users + current user from settings)
- ✅ Add multiple users as hosts
- ✅ Remove users from host list (except creator)
- ✅ Event creator automatically included as host (cannot be removed)
- ✅ All hosts displayed on event detail screen
- ✅ Creator indicator badge
- ✅ Current user indicator badge
- ✅ User search/selector for adding new hosts
Future Enhancements:
- Add host selection to event add/edit screens
- Role-based permissions (co-host, assistant, etc.)
- Backend integration for persisting host changes
Related Features
Section titled “Related Features”- Add User (
add_user.md) - Users must exist before they can be assigned as hosts - Manage Guests for Event (
manage_guests_for_event.md) - Hosts can manage guests - Event permissions and access control (future enhancement)
- Event notifications (hosts should receive event updates)