jitsi-roomsv2/frontend/src/components/jitsi/JitsiEntrypoint.tsx

62 lines
1.9 KiB
TypeScript
Raw Normal View History

2023-01-07 19:06:04 +01:00
import { JitsiMeeting } from "@jitsi/react-sdk";
import { JITSI_DOMAIN } from "../../background/constants";
2023-01-10 19:00:20 +01:00
import { UserInfo } from "./types";
2023-02-07 20:31:07 +01:00
import curry from "just-curry-it";
import {
ConferenceData,
2023-02-12 15:28:53 +01:00
displayNameChangeListener,
2023-04-01 17:46:33 +02:00
displayNameChangeListenerWrapper,
2023-02-07 20:31:07 +01:00
videoConferenceJoinedListener,
} from "../../background/jitsi/eventListeners";
2023-02-12 15:28:53 +01:00
import useJitsiEventCapture from "../../hooks/useJitsiEventCapture";
2023-01-07 19:06:04 +01:00
2023-01-10 19:00:20 +01:00
interface Props {
roomName: string;
userInfo: UserInfo;
2023-02-12 15:28:53 +01:00
conferenceData: ConferenceData | undefined;
2023-02-07 20:31:07 +01:00
setConferenceData: (newData: ConferenceData) => void;
2023-01-10 19:00:20 +01:00
}
2023-02-12 15:28:53 +01:00
function JitsiEntrypoint({
roomName,
userInfo,
conferenceData,
setConferenceData,
}: Props) {
const { setDisplayNameChangeEvent } = useJitsiEventCapture(
2023-04-01 17:46:33 +02:00
curry(displayNameChangeListener)(conferenceData)(setConferenceData)
2023-02-12 15:28:53 +01:00
);
2023-01-07 19:06:04 +01:00
return (
<JitsiMeeting
domain={JITSI_DOMAIN}
2023-01-10 19:00:20 +01:00
roomName={roomName}
2023-01-07 19:06:04 +01:00
configOverwrite={{
startWithAudioMuted: true,
disableModeratorIndicator: true,
startScreenSharing: true,
enableEmailInStats: false,
prejoinConfig: { enabled: false },
}}
interfaceConfigOverwrite={{}}
2023-01-10 19:00:20 +01:00
userInfo={userInfo}
2023-01-07 19:06:04 +01:00
onApiReady={(externalApi) => {
2023-02-07 20:31:07 +01:00
externalApi.addEventListener(
"videoConferenceJoined",
curry(videoConferenceJoinedListener)(setConferenceData)
);
2023-02-12 15:28:53 +01:00
externalApi.addEventListener(
"displayNameChange",
2023-04-01 17:46:33 +02:00
curry(displayNameChangeListenerWrapper)(setDisplayNameChangeEvent)
2023-02-12 15:28:53 +01:00
);
2023-01-07 19:06:04 +01:00
}}
getIFrameRef={(iframeRef) => {
iframeRef.style.height = "100%";
iframeRef.style.width = "100%";
}}
/>
);
}
export default JitsiEntrypoint;