fix/event-crew-section

Branch: fix/event-crew-section
Priorità: 3 — Completamento B12/B19

Cosa è stato fatto

Crew reali nella pagina evento (B12 gap)

event_details_screen.dart:

  • Aggiunto _linkedCrews state + _loadLinkedCrews() che interroga Supabase:
    squads WHERE linked_event_id = eventId ORDER BY current_size DESC LIMIT 8
  • _buildCrewsSection mostra ora una ListView orizzontale con card per ogni crew (nome, vibe_tag, current_size/max_size)
  • Se nessuna crew è collegata: empty state “Nessuna crew ancora — crea la tua o aspetta!”

Mute notifiche funzionante (B19 gap)

chat_details_screen.dart:

  • Convertito da ConsumerWidget a ConsumerStatefulWidget
  • Toggle “Silenzia notifiche” legge/scrive SharedPreferences con chiave chat_muted_{chatId}
  • Stato caricato in initState via _loadMuteState()

Galleria media (B19 gap)

  • Pulsante “Media” e voce lista “Media, link e documenti” aprono una DraggableScrollableSheet
  • Query: messages WHERE chat_id = ? AND type = 'image' ORDER BY created_at DESC LIMIT 60
  • Grid 3 colonne con Image.network, gestione errori con icona broken_image

File modificati

FileModifica
lib/features/events/screens/event_details_screen.dartCrew section con dati reali
lib/features/messaging/screens/chat_details_screen.dartMute toggle + media gallery