From 04710f5ecd17497861c559c72b8711d5d7cc10ed Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Wed, 17 Sep 2025 23:17:41 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(frontend)=20fix=20mic=20mute=20for?= =?UTF-8?q?=20non-admin=20users=20in=20participant=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolve regression where non-admin/anonymous users couldn't mute their microphone from participant list after mute permissions refactoring. Replace API call with local track mute for better performance and proper permission handling. --- .../controls/Participants/ParticipantListItem.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx index 08237c2f..1e59b373 100644 --- a/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx +++ b/src/frontend/src/features/rooms/livekit/components/controls/Participants/ParticipantListItem.tsx @@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next' import { Avatar } from '@/components/Avatar' import { getParticipantColor } from '@/features/rooms/utils/getParticipantColor' import { getParticipantIsRoomAdmin } from '@/features/rooms/utils/getParticipantIsRoomAdmin' -import { Participant, Track } from 'livekit-client' +import { LocalParticipant, Participant, Track } from 'livekit-client' import { isLocal } from '@/utils/livekit' import { useIsSpeaking, @@ -54,9 +54,11 @@ const MicIndicator = ({ participant }: MicIndicatorProps) => { tooltip={label} aria-label={label} isDisabled={isMuted || !canMute} - onPress={() => + onPress={async () => !isMuted && isLocal(participant) - ? muteParticipant(participant) + ? await (participant as LocalParticipant)?.setMicrophoneEnabled( + false + ) : setIsAlertOpen(true) } data-attr="participants-mute"