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/GroupCallView.jsx b/src/room/GroupCallView.jsx
index 2403bf60..9794a00c 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 (
+
+ );
+ }
}
}
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;
}