From f583d9186d110bb96e629d9881c54ea75aff96cd Mon Sep 17 00:00:00 2001
From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com>
Date: Sun, 10 May 2026 20:36:27 +0200
Subject: [PATCH] =?UTF-8?q?feat(ui):=20group=20DM=20chat-header=20polish?=
=?UTF-8?q?=20=E2=80=94=20avatar=20stack,=20globe,=20cog,=20name=20+=20cou?=
=?UTF-8?q?nt=20click=20targets?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/src/components/layout/MainContent.tsx | 57 +++++++++++++++++--
1 file changed, 52 insertions(+), 5 deletions(-)
diff --git a/packages/web/src/components/layout/MainContent.tsx b/packages/web/src/components/layout/MainContent.tsx
index ea076392..a38ff23b 100644
--- a/packages/web/src/components/layout/MainContent.tsx
+++ b/packages/web/src/components/layout/MainContent.tsx
@@ -12,6 +12,7 @@ import { VoiceChatPanel } from '../voice/VoiceChatPanel';
import { FriendsPage } from '../chat/FriendsPage';
import { ExplorePage } from '../chat/ExplorePage';
import { Avatar } from '../ui/Avatar';
+import { AvatarStack } from '../ui/AvatarStack';
import { useVoiceStore } from '../../stores/voiceStore';
import { wsSend } from '../../hooks/useWebSocket';
import { MemberListToggleButton } from './MemberListToggleButton';
@@ -181,10 +182,29 @@ export function MainContent() {
)}
-
-
{dmName}
+ {isGroupDm ? (
+
openModal('groupDmSettings', { dmChannelId: currentChannelId, initialTab: 'overview' })}
+ className="flex-shrink-0 cursor-pointer"
+ aria-label="Open group settings"
+ >
+
+
+ ) : (
+
+ )}
+ {isGroupDm ? (
+
openModal('groupDmSettings', { dmChannelId: currentChannelId, initialTab: 'overview' })}
+ className="font-bold text-[15px] tracking-[-0.02em] text-txt-primary truncate cursor-pointer"
+ >
+ {dmName}
+
+ ) : (
+
{dmName}
+ )}
{!isGroupDm && firstOther && isFederationGlobeApplicable(firstOther) && (
)}
+ {isGroupDm && (() => {
+ const federatedMembers = (dmChannel?.members ?? []).filter(m => isFederationGlobeApplicable(m));
+ if (federatedMembers.length === 0) return null;
+ return (
+
m.username).join(', ')} position="bottom">
+
+
+ );
+ })()}
{isGroupDm && (
-
({dmChannel?.members.length} Members)
+
openModal('groupDmSettings', { dmChannelId: currentChannelId, initialTab: 'members' })}
+ className="text-xs text-txt-tertiary flex-shrink-0 cursor-pointer"
+ >
+ ({dmChannel?.members.length} members)
+
+ )}
+ {isGroupDm && (
+
)}