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;
|