apply mute from mobile controls
This commit is contained in:
@@ -24,6 +24,7 @@ import {
|
|||||||
type MatrixRTCSession,
|
type MatrixRTCSession,
|
||||||
} from "matrix-js-sdk/lib/matrixrtc";
|
} from "matrix-js-sdk/lib/matrixrtc";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
|
import { useObservableEagerState } from "observable-hooks";
|
||||||
|
|
||||||
import type { IWidgetApiRequest } from "matrix-widget-api";
|
import type { IWidgetApiRequest } from "matrix-widget-api";
|
||||||
import {
|
import {
|
||||||
@@ -68,6 +69,7 @@ import {
|
|||||||
useSetting,
|
useSetting,
|
||||||
} from "../settings/settings";
|
} from "../settings/settings";
|
||||||
import { useTypedEventEmitter } from "../useEvents";
|
import { useTypedEventEmitter } from "../useEvents";
|
||||||
|
import { setOutputEnabled$ } from "../controls.ts";
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
@@ -104,8 +106,9 @@ export const GroupCallView: FC<Props> = ({
|
|||||||
const [externalError, setExternalError] = useState<ElementCallError | null>(
|
const [externalError, setExternalError] = useState<ElementCallError | null>(
|
||||||
null,
|
null,
|
||||||
);
|
);
|
||||||
|
const muteAllAudioControlled = useObservableEagerState(setOutputEnabled$);
|
||||||
const [muteAllAudio] = useSetting(muteAllAudioSetting);
|
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
||||||
|
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
||||||
const memberships = useMatrixRTCSessionMemberships(rtcSession);
|
const memberships = useMatrixRTCSessionMemberships(rtcSession);
|
||||||
const leaveSoundContext = useLatest(
|
const leaveSoundContext = useLatest(
|
||||||
useAudioContext({
|
useAudioContext({
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ import { ReactionsReader } from "../reactions/ReactionsReader";
|
|||||||
import { ConnectionLostError } from "../utils/errors.ts";
|
import { ConnectionLostError } from "../utils/errors.ts";
|
||||||
import { useTypedEventEmitter } from "../useEvents.ts";
|
import { useTypedEventEmitter } from "../useEvents.ts";
|
||||||
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
|
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
|
||||||
|
import { setOutputEnabled$ } from "../controls.ts";
|
||||||
|
|
||||||
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
|
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
|
||||||
|
|
||||||
@@ -222,7 +223,9 @@ export const InCallView: FC<InCallViewProps> = ({
|
|||||||
room: livekitRoom,
|
room: livekitRoom,
|
||||||
});
|
});
|
||||||
|
|
||||||
const [muteAllAudio] = useSetting(muteAllAudioSetting);
|
const muteAllAudioControlled = useObservableEagerState(setOutputEnabled$);
|
||||||
|
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
|
||||||
|
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
|
||||||
|
|
||||||
// This seems like it might be enough logic to use move it into the call view model?
|
// This seems like it might be enough logic to use move it into the call view model?
|
||||||
const [didFallbackToRoomKey, setDidFallbackToRoomKey] = useState(false);
|
const [didFallbackToRoomKey, setDidFallbackToRoomKey] = useState(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user