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_roundedbookmark_rounded (electricCoral)
  • Asynchronously upserts/deletes from saved_events table in Supabase
  • Uses .catchError((_) {}) — silently handles the case where the saved_events table 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 electricCoral when 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

FileChange
lib/features/events/screens/event_details_screen.dart5 actions wired, 3 methods added, ShareService imported

Pending

  • saved_events table needs to be created in Supabase for bookmark persistence
  • Organizer follow needs a user_follows table and real API call
  • ‘Mostra’ crews should eventually filter crews by event_id