diff --git a/packages/web/src/components/layout/ChannelSidebar.tsx b/packages/web/src/components/layout/ChannelSidebar.tsx
index aba0c35b..ba8a5130 100644
--- a/packages/web/src/components/layout/ChannelSidebar.tsx
+++ b/packages/web/src/components/layout/ChannelSidebar.tsx
@@ -780,7 +780,7 @@ function UserAreaPanel({
{/* Input chevron */}
diff --git a/packages/web/src/components/voice/VoiceControlBar.tsx b/packages/web/src/components/voice/VoiceControlBar.tsx
index c9492767..fcf6c2a0 100644
--- a/packages/web/src/components/voice/VoiceControlBar.tsx
+++ b/packages/web/src/components/voice/VoiceControlBar.tsx
@@ -152,7 +152,7 @@ export function VoiceControlBar() {
diff --git a/packages/web/src/components/voice/VoiceUser.tsx b/packages/web/src/components/voice/VoiceUser.tsx
index 266fde6e..91fccf11 100644
--- a/packages/web/src/components/voice/VoiceUser.tsx
+++ b/packages/web/src/components/voice/VoiceUser.tsx
@@ -150,43 +150,44 @@ export function VoiceUser({ tile, large }: VoiceUserProps) {
)}
- {participant.isMuted && (() => {
+ {(() => {
const isServerMutedUser = spaceId ? serverMutedUserIds.has(`${spaceId}:${participant.userId}`) : false;
const isServerDeafenedUser = spaceId ? serverDeafenedUserIds.has(`${spaceId}:${participant.userId}`) : false;
- const badgeBg = (isServerMutedUser || isServerDeafenedUser) ? 'bg-accent-amber/90' : 'bg-accent-rose/90';
+ const effectivelyMuted = participant.isMuted || isServerMutedUser || isServerDeafenedUser;
+ const effectivelyDeafened = (isLocal ? isDeafened : participant.isDeafened) || isServerDeafenedUser;
return (
-
- );
- })()}
- {(isLocal ? isDeafened : participant.isDeafened) && (() => {
- const isServerDeafenedUser = spaceId ? serverDeafenedUserIds.has(`${spaceId}:${participant.userId}`) : false;
- const badgeBg = isServerDeafenedUser ? 'bg-accent-amber/90' : 'bg-accent-rose/90';
- return (
-
+ <>
+ {effectivelyMuted && (
+
+ )}
+ {effectivelyDeafened && (
+
+ )}
+ >
);
})()}