mirror of
https://github.com/vector-im/element-call.git
synced 2026-02-02 04:05:56 +00:00
fix mute all audio via controls
This commit is contained in:
@@ -26,7 +26,7 @@ export interface OutputDevice {
|
||||
export const setPipEnabled$ = new Subject<boolean>();
|
||||
export const setAvailableOutputDevices$ = new Subject<OutputDevice[]>();
|
||||
export const setOutputDevice$ = new Subject<string>();
|
||||
export const setOutputEnabled$ = new Subject<boolean>();
|
||||
export const setOutputDisabled$ = new Subject<boolean>();
|
||||
|
||||
window.controls = {
|
||||
canEnterPip(): boolean {
|
||||
@@ -51,8 +51,8 @@ window.controls = {
|
||||
setOutputDevice$.next(id);
|
||||
},
|
||||
setOutputEnabled(enabled: boolean): void {
|
||||
if (!setOutputEnabled$.observed)
|
||||
if (!setOutputDisabled$.observed)
|
||||
throw new Error("Output controls are disabled");
|
||||
setOutputEnabled$.next(enabled);
|
||||
setOutputDisabled$.next(!enabled);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -24,7 +24,7 @@ import {
|
||||
type MatrixRTCSession,
|
||||
} from "matrix-js-sdk/lib/matrixrtc";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { useObservableEagerState } from "observable-hooks";
|
||||
import { useObservable, useObservableEagerState } from "observable-hooks";
|
||||
import { startWith } from "rxjs";
|
||||
|
||||
import type { IWidgetApiRequest } from "matrix-widget-api";
|
||||
@@ -70,7 +70,7 @@ import {
|
||||
useSetting,
|
||||
} from "../settings/settings";
|
||||
import { useTypedEventEmitter } from "../useEvents";
|
||||
import { setOutputEnabled$ } from "../controls.ts";
|
||||
import { setOutputDisabled$ } from "../controls.ts";
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
@@ -108,7 +108,7 @@ export const GroupCallView: FC<Props> = ({
|
||||
null,
|
||||
);
|
||||
const muteAllAudioControlled = useObservableEagerState(
|
||||
setOutputEnabled$.pipe(startWith(false)),
|
||||
useObservable(() => setOutputDisabled$.pipe(startWith(false))),
|
||||
);
|
||||
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
||||
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
||||
|
||||
@@ -104,7 +104,7 @@ import { ReactionsReader } from "../reactions/ReactionsReader";
|
||||
import { ConnectionLostError } from "../utils/errors.ts";
|
||||
import { useTypedEventEmitter } from "../useEvents.ts";
|
||||
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
|
||||
import { setOutputEnabled$ } from "../controls.ts";
|
||||
import { setOutputDisabled$ } from "../controls.ts";
|
||||
|
||||
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
|
||||
|
||||
@@ -224,7 +224,7 @@ export const InCallView: FC<InCallViewProps> = ({
|
||||
});
|
||||
|
||||
const muteAllAudioControlled = useObservableEagerState(
|
||||
setOutputEnabled$.pipe(startWith(false)),
|
||||
useObservable(() => setOutputDisabled$.pipe(startWith(false))),
|
||||
);
|
||||
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
||||
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
||||
|
||||
Reference in New Issue
Block a user