From 2063e66b8e06d0acfc16ae47aea8eaab19f6e0af Mon Sep 17 00:00:00 2001 From: damencho Date: Tue, 16 Dec 2025 17:01:56 -0600 Subject: [PATCH] fix(transcription): Fixes a UI bug where you cannot start transcription 2nd time. --- .../chat/components/web/ClosedCaptionsTab.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/react/features/chat/components/web/ClosedCaptionsTab.tsx b/react/features/chat/components/web/ClosedCaptionsTab.tsx index dafab06634..d4e4f1e84b 100644 --- a/react/features/chat/components/web/ClosedCaptionsTab.tsx +++ b/react/features/chat/components/web/ClosedCaptionsTab.tsx @@ -90,7 +90,8 @@ export default function ClosedCaptionsTab() { const _canStartSubtitles = useSelector(canStartSubtitles); const [ isButtonPressed, setButtonPressed ] = useState(false); const subtitlesError = useSelector((state: IReduxState) => state['features/subtitles']._hasError); - const { conference } = useSelector((state: IReduxState) => state['features/base/conference']); + const isAsyncTranscriptionEnabled = useSelector((state: IReduxState) => + state['features/base/conference'].conference?.getMetadataHandler()?.getMetadata()?.asyncTranscription); const filteredSubtitles = useMemo(() => { // First, create a map of transcription messages by message ID @@ -124,22 +125,21 @@ export default function ClosedCaptionsTab() { groupMessagesBySender(filteredSubtitles), [ filteredSubtitles ]); const startClosedCaptions = useCallback(() => { - if (isButtonPressed) { - return; - } - - if (conference?.getMetadataHandler()?.getMetadata()?.asyncTranscription) { + if (isAsyncTranscriptionEnabled) { dispatch(openDialog('StartRecordingDialog', StartRecordingDialog, { recordAudioAndVideo: false })); } else { + if (isButtonPressed) { + return; + } dispatch(setRequestingSubtitles(true, false, null)); + setButtonPressed(true); } - setButtonPressed(true); - }, [ conference, dispatch, isButtonPressed, openDialog, setButtonPressed ]); + }, [ isAsyncTranscriptionEnabled, dispatch, isButtonPressed, openDialog, setButtonPressed ]); - if (subtitlesError && isButtonPressed) { + if (subtitlesError && isButtonPressed && !isAsyncTranscriptionEnabled) { setButtonPressed(false); } @@ -159,7 +159,7 @@ export default function ClosedCaptionsTab() { ); } - if (isButtonPressed) { + if (isButtonPressed && !isAsyncTranscriptionEnabled) { setButtonPressed(false); } @@ -176,7 +176,7 @@ export default function ClosedCaptionsTab() { ); } - if (isButtonPressed) { + if (isButtonPressed && !isAsyncTranscriptionEnabled) { setButtonPressed(false); }