优化:好友通知弹窗根据互相状态显示不同内容
FriendAdded 事件: - 新增 hasAddedBack 字段(B 是否已回加 A) - Toast:已互相好友 → '你们现在互为好友 🎉' - Toast:未回加 → '但你还没有添加对方为好友' + [➕ 回加] 一键操作按钮 FriendRemoved 事件: - 新增 hadAddedBack 字段(之前是否互相好友) - Toast:之前互相好友 → 提示 + [🗑️ 同步移除] 一键操作按钮 - Toast:单向好友 → 简单通知,无操作按钮 Toast 改进: - 右上角 × 关闭按钮 - 快捷操作按钮支持 fetch 直接请求 - 完成后显示结果并自动关闭,延时改为 8 秒
This commit is contained in:
@@ -106,8 +106,13 @@ class FriendController extends Controller
|
||||
'sub_time' => now(),
|
||||
]);
|
||||
|
||||
// 广播给对方(仅对方可见)
|
||||
broadcast(new FriendAdded($me->username, $username));
|
||||
// 检查 B 是否已将 A 加为好友(互相好友判断)
|
||||
$hasAddedBack = FriendRequest::where('who', $username)
|
||||
->where('towho', $me->username)
|
||||
->exists();
|
||||
|
||||
// 广播给对方(仅对方可见),携带是否已回加的状态
|
||||
broadcast(new FriendAdded($me->username, $username, $hasAddedBack));
|
||||
|
||||
// 若对方在线,推送聊天区悄悄话
|
||||
$this->notifyOnlineUser($username, $me->username, 'added', $request->input('room_id'));
|
||||
@@ -140,8 +145,13 @@ class FriendController extends Controller
|
||||
return response()->json(['status' => 'error', 'message' => '好友关系不存在'], 404);
|
||||
}
|
||||
|
||||
// 广播给对方
|
||||
broadcast(new FriendRemoved($me->username, $username));
|
||||
// 检查 B 之前是否也将 A 加为好友(删除前的互相状态)
|
||||
$hadAddedBack = FriendRequest::where('who', $username)
|
||||
->where('towho', $me->username)
|
||||
->exists();
|
||||
|
||||
// 广播给对方,携带之前的互相好友状态
|
||||
broadcast(new FriendRemoved($me->username, $username, $hadAddedBack));
|
||||
|
||||
// 若对方在线,推送聊天区悄悄话
|
||||
$this->notifyOnlineUser($username, $me->username, 'removed', $request->input('room_id'));
|
||||
|
||||
Reference in New Issue
Block a user