From b31c6c6780bca4b47525298eac0870cee0530e37 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 8 Jul 2022 20:55:18 +0100 Subject: [PATCH 1/3] Bypass lobby in embedded mode --- src/room/GroupCallView.jsx | 51 +++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/src/room/GroupCallView.jsx b/src/room/GroupCallView.jsx index 2403bf60..defcf801 100644 --- a/src/room/GroupCallView.jsx +++ b/src/room/GroupCallView.jsx @@ -61,7 +61,10 @@ export function GroupCallView({ useEffect(() => { window.groupCall = groupCall; - }, [groupCall]); + + // In embedded mode, bypass the lobby and just enter the call straight away + if (isEmbedded) groupCall.enter(); + }, [groupCall, isEmbedded]); useSentryGroupCallHandler(groupCall); @@ -128,24 +131,32 @@ export function GroupCallView({ } else if (left) { return ; } else { - return ( - - ); + if (isEmbedded) { + return ( + +

Loading room...

+
, + ); + } else { + return ( + + ); + } } } From 5199fd2566487932bf9f431575197c00b71d6cc5 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 8 Jul 2022 21:17:27 +0100 Subject: [PATCH 2/3] Prettier --- src/room/GroupCallView.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/room/GroupCallView.jsx b/src/room/GroupCallView.jsx index defcf801..9794a00c 100644 --- a/src/room/GroupCallView.jsx +++ b/src/room/GroupCallView.jsx @@ -135,7 +135,7 @@ export function GroupCallView({ return (

Loading room...

-
, + ); } else { return ( From 32907764b3b2c2fb4986afbdcf4459446db97e10 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 11 Jul 2022 13:23:03 +0100 Subject: [PATCH 3/3] Add ptt URL param to control what mode rooms are created in --- src/room/GroupCallLoader.jsx | 11 +++++++++-- src/room/RoomPage.jsx | 15 ++++++++++++--- src/room/useLoadGroupCall.js | 12 +++++++++--- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/room/GroupCallLoader.jsx b/src/room/GroupCallLoader.jsx index dd327f9f..f0741284 100644 --- a/src/room/GroupCallLoader.jsx +++ b/src/room/GroupCallLoader.jsx @@ -19,12 +19,19 @@ import { useLoadGroupCall } from "./useLoadGroupCall"; import { ErrorView, FullScreenView } from "../FullScreenView"; import { usePageTitle } from "../usePageTitle"; -export function GroupCallLoader({ client, roomId, viaServers, children }) { +export function GroupCallLoader({ + client, + roomId, + viaServers, + createPtt, + children, +}) { const { loading, error, groupCall } = useLoadGroupCall( client, roomId, viaServers, - true + true, + createPtt ); usePageTitle(groupCall ? groupCall.room.name : "Loading..."); diff --git a/src/room/RoomPage.jsx b/src/room/RoomPage.jsx index ae3c927c..1fe7eea6 100644 --- a/src/room/RoomPage.jsx +++ b/src/room/RoomPage.jsx @@ -29,9 +29,13 @@ export function RoomPage() { const { roomId: maybeRoomId } = useParams(); const { hash, search } = useLocation(); - const [viaServers, isEmbedded] = useMemo(() => { + const [viaServers, isEmbedded, isPtt] = useMemo(() => { const params = new URLSearchParams(search); - return [params.getAll("via"), params.has("embed")]; + return [ + params.getAll("via"), + params.has("embed"), + params.get("ptt") === "true", + ]; }, [search]); const roomId = (maybeRoomId || hash || "").toLowerCase(); @@ -49,7 +53,12 @@ export function RoomPage() { return ( - + {(groupCall) => ( setState((prevState) => ({ ...prevState, loading: false, error })) ); - }, [client, roomId, state.reloadId, createIfNotFound, viaServers]); + }, [client, roomId, state.reloadId, createIfNotFound, viaServers, createPtt]); return state; }