From 9d00cf024a50609cd8560cf4832f88c6620f101a Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Thu, 2 Jul 2026 01:51:18 +0200 Subject: [PATCH] feat(federation): client handler for federation_peer_reset_detected --- packages/web/src/hooks/useWebSocket.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/web/src/hooks/useWebSocket.ts b/packages/web/src/hooks/useWebSocket.ts index 590f8b7b..0f46922e 100644 --- a/packages/web/src/hooks/useWebSocket.ts +++ b/packages/web/src/hooks/useWebSocket.ts @@ -50,6 +50,13 @@ function notifyFederationChangeListeners(): void { for (const cb of federationChangeListeners) cb(); } +const federationPeerResetDetectedListeners = new Set<(origin: string) => void>(); + +export function onFederationPeerResetDetected(cb: (origin: string) => void): () => void { + federationPeerResetDetectedListeners.add(cb); + return () => { federationPeerResetDetectedListeners.delete(cb); }; +} + // ─── Connection state ───────────────────────────────────────────────────────── interface ConnectionState { @@ -826,6 +833,11 @@ function handleEvent(origin: string, event: ServerEvent): void { break; } + case 'federation_peer_reset_detected': { + for (const cb of federationPeerResetDetectedListeners) cb(event.origin); + break; + } + case 'federation_approval_request_received': { notifyFederationChangeListeners(); break;