element-call/src/room/GroupCallLoader.jsx

35 lines
899 B
React
Raw Normal View History

2022-01-05 23:35:12 +00:00
import React from "react";
2022-01-06 00:51:24 +00:00
import { useLoadGroupCall } from "./useLoadGroupCall";
2022-01-05 23:35:12 +00:00
import { ErrorView, FullScreenView } from "../FullScreenView";
2022-02-02 23:02:40 +00:00
import { usePageTitle } from "../usePageTitle";
2022-02-14 21:53:19 +00:00
import { isLocalRoomId } from "../matrix-utils";
import { RoomNotFoundView } from "./RoomNotFoundView";
2022-01-05 23:35:12 +00:00
export function GroupCallLoader({ client, roomId, viaServers, children }) {
const { loading, error, groupCall } = useLoadGroupCall(
client,
roomId,
viaServers
);
2022-02-02 23:02:40 +00:00
usePageTitle(groupCall ? groupCall.room.name : "Loading...");
2022-01-05 23:35:12 +00:00
if (loading) {
return (
<FullScreenView>
<h1>Loading room...</h1>
</FullScreenView>
);
}
2022-02-14 21:53:19 +00:00
if (error && error.errcode === "M_UNKNOWN" && isLocalRoomId(roomId)) {
return <RoomNotFoundView client={client} roomId={roomId} />;
}
2022-01-05 23:35:12 +00:00
if (error) {
return <ErrorView error={error} />;
}
return children(groupCall);
}