From eddf2254cc9e29ef9071d706cae8a90c455877fc Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Sun, 26 Apr 2026 22:35:16 +0200 Subject: [PATCH] feat(web): render outbound peering requests with subscriber list in admin panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PendingApprovals now branches row rendering on direction. Inbound rows render exactly as before. Outbound rows show ' — N users want us to peer' with an inline subscriber list (username + reason + target). ConfirmDialog descriptions branch on direction so admins see appropriate copy for outbound approve (initiate handshake on behalf of N users) vs outbound deny (notify requesting users). --- .../FederationPanel.tsx | 77 ++++++++++++++----- 1 file changed, 59 insertions(+), 18 deletions(-) diff --git a/packages/web/src/components/modals/instanceSettingsPanels/FederationPanel.tsx b/packages/web/src/components/modals/instanceSettingsPanels/FederationPanel.tsx index bf313a8d..1edfdaf4 100644 --- a/packages/web/src/components/modals/instanceSettingsPanels/FederationPanel.tsx +++ b/packages/web/src/components/modals/instanceSettingsPanels/FederationPanel.tsx @@ -693,16 +693,44 @@ function PendingApprovals({ onCountChange }: { onCountChange?: (count: number) =
Loading...
)} {requests.map((req) => { - const name = req.instanceName || new URL(req.origin).host; + const isOutbound = req.direction === 'outbound'; + let name = req.instanceName || ''; + if (!name) { + try { + name = new URL(req.origin).host; + } catch { + name = req.origin; + } + } + const subCount = req.subscribers?.length ?? 0; + const titleText = isOutbound + ? `${name} — ${subCount} ${subCount === 1 ? 'user wants' : 'users want'} us to peer` + : name; return (
-
{name}
+
{titleText}
{req.origin}
Requested {formatRelativeTime(req.requestedAt)}
+ {isOutbound && req.subscribers && req.subscribers.length > 0 && ( +
+ {req.subscribers.map((sub) => ( +
+ {sub.username} + {' — '} + {sub.triggerReason === 'friend_add' && `friend-add to ${sub.triggerTarget}`} + {sub.triggerReason === 'space_join' && `wants to join ${sub.triggerTarget}`} + {sub.triggerReason === 'direct_message' && `wants to DM ${sub.triggerTarget}`} +
+ ))} +
+ )}
); }