feat: gestión de amigos y mejora visual del dropdown de búsqueda

- FriendshipController: carga también amigos aceptados con su friendship
- friendships/index: tabs con 'Mis amigos' (tabla con Mensaje/Quitar) y 'Solicitudes'
- Notificaciones de solicitud abren directamente la pestaña de solicitudes (#solicitudes)
- Dropdown de búsqueda: bordes redondeados, sombra suave, margen superior, hover en items, etiqueta de sección y separadores finos

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-28 17:20:01 -06:00
parent 0273fbfddd
commit d7ae38ce27
3 changed files with 212 additions and 65 deletions
+16 -5
View File
@@ -11,14 +11,25 @@ class FriendshipController extends Controller
{
public function index()
{
$requests = auth()->user()
->receivedFriendRequests()
$me = auth()->user();
$requests = $me->receivedFriendRequests()
->where('status', 'pending')
->with('sender')
->latest()
->get();
return view('friendships.index', compact('requests'));
// Amigos aceptados (en ambas direcciones)
$friendIds = $me->friendIds();
$friends = User::whereIn('id', $friendIds)
->orderBy('name')
->get()
->map(function (User $user) use ($me) {
$user->friendship = $me->friendshipWith($user);
return $user;
});
return view('friendships.index', compact('requests', 'friends'));
}
public function send(User $user)
@@ -44,7 +55,7 @@ class FriendshipController extends Controller
title: $me->name . ' te envió una solicitud de amistad',
icon: 'fa-user-plus',
color: 'primary',
url: route('friendships.index'),
url: route('friendships.index') . '#solicitudes',
);
return back()->with('success', 'Solicitud de amistad enviada.');
@@ -108,7 +119,7 @@ class FriendshipController extends Controller
title: $me->name . ' te envió una solicitud de amistad',
icon: 'fa-user-plus',
color: 'primary',
url: route('friendships.index'),
url: route('friendships.index') . '#solicitudes',
);
return response()->json(['status' => 'pending']);