fix: real-time friend request cancel/decline via WebSocket

Cancelled requests now disappear from receiver's UI instantly, and
declined requests revert the sender's discover card from "Request
Pending" to "Send Friend Request" — no page refresh needed.

Also includes the discover endpoint and sendFriendRequest return type
changes from the prior session.
This commit is contained in:
Jannis Braun
2026-03-13 22:42:25 +01:00
parent d3101c4ba4
commit 9382477e33
4 changed files with 203 additions and 6 deletions
+18
View File
@@ -495,6 +495,24 @@ function handleEvent(origin: string, event: ServerEvent): void {
break;
}
case 'friend_request_cancelled': {
const { removeRequestById } = useSocialStore.getState();
removeRequestById(event.requestId, origin);
import('../stores/discoverStore').then(({ useDiscoverStore }) => {
useDiscoverStore.getState().updateRelationship(event.userId, origin, 'none');
});
break;
}
case 'friend_request_declined': {
const { removeRequestById } = useSocialStore.getState();
removeRequestById(event.requestId, origin);
import('../stores/discoverStore').then(({ useDiscoverStore }) => {
useDiscoverStore.getState().updateRelationship(event.userId, origin, 'none');
});
break;
}
// ─── Channel ack (all origins) ──────────────────────────────────────────
case 'channel_ack': {