File tree 2 files changed +9
-3
lines changed 2 files changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ import {
24
24
type MatrixRTCSession ,
25
25
} from "matrix-js-sdk/lib/matrixrtc" ;
26
26
import { useNavigate } from "react-router-dom" ;
27
+ import { useObservableEagerState } from "observable-hooks" ;
27
28
28
29
import type { IWidgetApiRequest } from "matrix-widget-api" ;
29
30
import {
@@ -68,6 +69,7 @@ import {
68
69
useSetting ,
69
70
} from "../settings/settings" ;
70
71
import { useTypedEventEmitter } from "../useEvents" ;
72
+ import { setOutputEnabled$ } from "../controls.ts" ;
71
73
72
74
declare global {
73
75
interface Window {
@@ -104,8 +106,9 @@ export const GroupCallView: FC<Props> = ({
104
106
const [ externalError , setExternalError ] = useState < ElementCallError | null > (
105
107
null ,
106
108
) ;
107
-
108
- const [ muteAllAudio ] = useSetting ( muteAllAudioSetting ) ;
109
+ const muteAllAudioControlled = useObservableEagerState ( setOutputEnabled$ ) ;
110
+ const [ muteAllAudioFromSetting ] = useSetting ( muteAllAudioSetting ) ;
111
+ const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting ;
109
112
const memberships = useMatrixRTCSessionMemberships ( rtcSession ) ;
110
113
const leaveSoundContext = useLatest (
111
114
useAudioContext ( {
Original file line number Diff line number Diff line change @@ -104,6 +104,7 @@ import { ReactionsReader } from "../reactions/ReactionsReader";
104
104
import { ConnectionLostError } from "../utils/errors.ts" ;
105
105
import { useTypedEventEmitter } from "../useEvents.ts" ;
106
106
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx" ;
107
+ import { setOutputEnabled$ } from "../controls.ts" ;
107
108
108
109
const canScreenshare = "getDisplayMedia" in ( navigator . mediaDevices ?? { } ) ;
109
110
@@ -222,7 +223,9 @@ export const InCallView: FC<InCallViewProps> = ({
222
223
room : livekitRoom ,
223
224
} ) ;
224
225
225
- const [ muteAllAudio ] = useSetting ( muteAllAudioSetting ) ;
226
+ const muteAllAudioControlled = useObservableEagerState ( setOutputEnabled$ ) ;
227
+ const [ muteAllAudioFromSetting ] = useSetting ( muteAllAudioSetting ) ;
228
+ const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting ;
226
229
227
230
// This seems like it might be enough logic to use move it into the call view model?
228
231
const [ didFallbackToRoomKey , setDidFallbackToRoomKey ] = useState ( false ) ;
You can’t perform that action at this time.
0 commit comments