hideScreensharing

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
This commit is contained in:
Šimon Brandner 2022-10-14 16:17:50 +02:00
parent 2d25d3c2bc
commit 96b1a5f296
No known key found for this signature in database
GPG key ID: D1D45825D60C24D2
2 changed files with 15 additions and 6 deletions

View file

@ -29,6 +29,8 @@ export interface UrlParams {
preload: boolean; preload: boolean;
// Whether to hide the room header when in a call // Whether to hide the room header when in a call
hideHeader: boolean; hideHeader: boolean;
// Whether to hide the screen-sharing button
hideScreensharing: boolean;
// Whether to start a walkie-talkie call instead of a video call // Whether to start a walkie-talkie call instead of a video call
isPtt: boolean; isPtt: boolean;
// Whether to use end-to-end encryption // Whether to use end-to-end encryption
@ -84,6 +86,7 @@ export const getUrlParams = (
isEmbedded: hasParam("embed"), isEmbedded: hasParam("embed"),
preload: hasParam("preload"), preload: hasParam("preload"),
hideHeader: hasParam("hideHeader"), hideHeader: hasParam("hideHeader"),
hideScreensharing: hasParam("hideScreensharing"),
isPtt: hasParam("ptt"), isPtt: hasParam("ptt"),
e2eEnabled: getParam("enableE2e") !== "false", // Defaults to true e2eEnabled: getParam("enableE2e") !== "false", // Defaults to true
userId: getParam("userId"), userId: getParam("userId"),

View file

@ -57,6 +57,7 @@ import { useFullscreen } from "../video-grid/useFullscreen";
import { AudioContainer } from "../video-grid/AudioContainer"; import { AudioContainer } from "../video-grid/AudioContainer";
import { useAudioOutputDevice } from "../video-grid/useAudioOutputDevice"; import { useAudioOutputDevice } from "../video-grid/useAudioOutputDevice";
import { widget, ElementWidgetActions } from "../widget"; import { widget, ElementWidgetActions } from "../widget";
import { useUrlParams } from "../UrlParams";
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {}); const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
// There is currently a bug in Safari our our code with cloning and sending MediaStreams // There is currently a bug in Safari our our code with cloning and sending MediaStreams
@ -141,6 +142,8 @@ export function InCallView({
useAudioOutputDevice(audioRef, audioOutput); useAudioOutputDevice(audioRef, audioOutput);
const { hideScreensharing } = useUrlParams();
useEffect(() => { useEffect(() => {
widget?.api.transport.send( widget?.api.transport.send(
layout === "freedom" layout === "freedom"
@ -329,7 +332,10 @@ export function InCallView({
<div className={styles.footer}> <div className={styles.footer}>
<MicButton muted={microphoneMuted} onPress={toggleMicrophoneMuted} /> <MicButton muted={microphoneMuted} onPress={toggleMicrophoneMuted} />
<VideoButton muted={localVideoMuted} onPress={toggleLocalVideoMuted} /> <VideoButton muted={localVideoMuted} onPress={toggleLocalVideoMuted} />
{canScreenshare && !isSafari && !reducedControls && ( {canScreenshare &&
!hideScreensharing &&
!isSafari &&
!reducedControls && (
<ScreenshareButton <ScreenshareButton
enabled={isScreensharing} enabled={isScreensharing}
onPress={toggleScreensharing} onPress={toggleScreensharing}