diff --git a/frontend/src/pages/public/MeetingActionBar.tsx b/frontend/src/pages/public/MeetingActionBar.tsx index f8c4080..2a6814a 100644 --- a/frontend/src/pages/public/MeetingActionBar.tsx +++ b/frontend/src/pages/public/MeetingActionBar.tsx @@ -32,6 +32,19 @@ export function MeetingActionBar({ isSpeaker, /** Tryb otwartego mikrofonu: kazdy mowi bez proszenia o glos. */ openMic, + /** + * Faktyczne uprawnienie do mikrofonu, prosto z tokenu wydanego przez backend. + * + * JEDYNE ZRODLO PRAWDY O TYM, CZY UCZESTNIK MOZE MOWIC + * --------------------------------------------------------------------- + * Wczesniej pasek skladal te odpowiedz sam, ze stanu zgloszenia + * (`speak.granted`) i trybu otwartego mikrofonu. Rozjezdzalo sie to + * z rzeczywistoscia, bo prawo do audio daje takze rola ACTIVE_PARTICIPANT + * przy wlaczonym "wideo dla wszystkich": odebranie glosu nie zmienialo wtedy + * uprawnien, ale napis "Masz glos" znikal. Uczestnik widzial zamkniety + * mikrofon przy dzialajacym i odwrotnie. + */ + canPublishAudio, /** * Temat wybrany klikiem w baner. * @@ -46,6 +59,7 @@ export function MeetingActionBar({ speak: ReturnType isSpeaker: boolean openMic: boolean + canPublishAudio: boolean offerTopicFromBanner?: string | null onOfferHandled?: () => void }) { @@ -96,7 +110,7 @@ export function MeetingActionBar({ Możesz mówić bez zgłaszania się ) : ( - + ))} {/* @@ -193,13 +207,24 @@ export function MeetingActionBar({ * oczekiwania, czyli dokladnie ten, w ktorym uczestnik zastanawia sie, * czy zgloszenie w ogole doszlo. */ -function SpeakButton({ speak }: { speak: ReturnType }) { +function SpeakButton({ + speak, + canPublishAudio, +}: { + speak: ReturnType + canPublishAudio: boolean +}) { + /* + * Napis o mikrofonie idzie za UPRAWNIENIEM, a nie za stanem zgloszenia: + * mowi o tym, co uczestnik faktycznie moze, a nie o tym, o co prosil. + * Przycisk "Oddaj glos" zostaje przy zgloszeniu, bo dotyczy wlasnie jego. + */ if (speak.granted) { return (
- Masz głos, mikrofon jest włączony + {canPublishAudio ? 'Masz głos, mikrofon jest włączony' : 'Masz głos, trwa włączanie mikrofonu...'}