Fix: Friend Request Flow
Branch: fix/friend-request-flow
Data: 2026-03-19
Cosa cambia
1. Auto-creazione chat all’accettazione (stile TikTok)
Quando un utente accetta una richiesta di amicizia, viene automaticamente creata una chat diretta con il mittente — senza che nessuno dei due debba cercarsi in chat.
File modificato: lib/features/social/notifiers/social_notifier.dart
SocialNotifierora riceveMessagingApiServicecome dipendenzaacceptFriendRequest()chiama_messagingService.createDirectChat(userId)in modalità fire-and-forget (.catchError()) dopo che l’accept è andato a buon fine- Se la creazione della chat fallisce, non interrompe il flusso di accettazione
2. Modello amici-only — rimozione Follower/Seguiti
File modificato: lib/features/profile/screens/public_profile_screen.dart
- La stats row nel profilo pubblico mostra solo Amici (rimossi Follower e Seguiti)
- Coerente con la decisione di prodotto (social-connection-model)
3. Self-profile guard
File modificato: lib/features/profile/screens/public_profile_screen.dart
- Aggiunto getter
_isSelfche confrontawidget.userIdcon l’ID dell’utente autenticato - I pulsanti “Aggiungi” e “Messaggio” sono nascosti quando si visualizza il proprio profilo
Architettura
notifications_screen.dart
→ socialNotifierProvider.notifier.acceptFriendRequest(userId)
→ SocialRepository.acceptFriendRequest(userId) [DB update]
→ MessagingApiService.createDirectChat(userId) [fire & forget]
→ state update: pendingRequests ↓, friends ↑
Note
- Le colonne
followers_count/following_countrimangono nel DB per ora - La chat auto-creata usa la stessa logica di
createDirectChatgià usata innew_chat_screen.dart - Se la chat esiste già (utenti che si sono già scritti),
createDirectChatrestituisce la chat esistente