feat/presence-default-fix

Summary

Small but impactful correctness fixes addressing two misleading placeholder defaults.

Changes

user_model.dartisOnline defaults to false

Previously isOnline => true (always online). This caused:

  • Chat tile to show a green “Online” dot for every user
  • Chat screen header to show “Online” as subtitle for every DM

Real-time presence tracking (last_seen_at column + Supabase Realtime updates) would be needed to show accurate status. Until then, defaulting to false is correct — no misleading indicators.

Affected UI:

  • chat_tile.dart — online indicator dot
  • chat_screen.dart — “Online”/“Offline” subtitle in DM header

minimal_event_card.dart — Facepile uses local colors

Previously used NetworkImage('https://i.pravatar.cc/100') — a hardcoded third-party URL loaded for every event card, with no relationship to actual attendees.

Replaced with colored placeholder circles:

  • Count clamped to event.stats.attendeeCount (1–3)
  • Three distinct brand-adjacent colors (coral, teal, sky blue)
  • No network requests, no privacy implications

When the data layer exposes attendee profile pictures (e.g., via event.attendees list), replace with real NetworkImage avatars.