Feature: Event Details — Wired Actions
Branch: feat/event-details-actions
Date: 2026-03-18
Impact: 5 no-op buttons now functional on the event detail page
What Changed
Five interactive elements on EventDetailsScreen had empty onPressed: () {} handlers. They are now wired to real behavior.
Actions Wired
Share Button (app bar)
Before: onPressed: () {}
After: onPressed: () => _shareService.shareEvent(event)
Calls ShareService.shareEvent() which opens the native OS share sheet with a viral-optimized Italian message including the event title, date, venue, and a deep link.
Bookmark Button (app bar)
Before: onPressed: () {}, icon always bookmark_border_rounded
After: Toggles _isBookmarked state
- Icon switches:
bookmark_border_rounded→bookmark_rounded(electricCoral) - Asynchronously upserts/deletes from
saved_eventstable in Supabase - Uses
.catchError((_) {})— silently handles the case where thesaved_eventstable doesn’t exist yet - Shows a snackbar confirmation
’Segui’ Organizer Button
Before: onPressed: () {}, label always ‘Segui’
After: Toggles _isFollowingOrganizer with visual feedback
- Label switches:
'Segui'→'Seguito' - Border and text color switch to
electricCoralwhen following - Shows a snackbar with the organizer’s display name
- DB integration pending (follow table not yet created)
‘Mostra’ Crews Button
Before: onPressed: () {}
After: context.push('/home/social/my-crews')
Navigates to the user’s crews list. A dedicated event-scoped crew list would be a better UX improvement once the route exists.
‘Vedi tutti’ Attendees Button
Before: onPressed: () {}
After: Opens a DraggableScrollableSheet bottom sheet
Shows the full attendee list with profile pictures and display names. The sheet is draggable from 30% to 90% of screen height.
Files Changed
| File | Change |
|---|---|
lib/features/events/screens/event_details_screen.dart | 5 actions wired, 3 methods added, ShareService imported |
Pending
saved_eventstable needs to be created in Supabase for bookmark persistence- Organizer follow needs a
user_followstable and real API call - ‘Mostra’ crews should eventually filter crews by
event_id