Skip to content

Instantly share code, notes, and snippets.

@gugadev
Last active December 1, 2020 13:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gugadev/d70d25179357b521dd2cb46c2ea64123 to your computer and use it in GitHub Desktop.
Save gugadev/d70d25179357b521dd2cb46c2ea64123 to your computer and use it in GitHub Desktop.
import React, { useState } from "react";
const JitsiMeet = () => {
const [jitsi, setJitsi] = useState<JitsiInstance | null>(null);
return null;
}
import React, { useState } from "react";
const JitsiMeet = () => {
const initialize = async () => {
const await loadScript("https://meet.jit.si/external_api.js", true);
};
useEffect(() => initialize(), []);
return null;
}
export function loadScript(url: string, async?: boolean): Promise<void> {
let resolver: any = null;
const onloadPromise = new Promise((resolve) => {
resolver = resolve;
});
const script = document.createElement("script");
script.src = url;
if (async) {
script.async = true;
}
script.onload = () => resolver();
document.body.appendChild(script);
return onloadPromise as Promise<void>;
}
import React, { useState } from "react";
const JitsiMeet = ({ roomName, displayName }) => {
const [jitsi, setJitsi] = useState<JitsiInstance | null>(null);
const initialize = async () => {
const await loadScript("https://meet.jit.si/external_api.js", true);
};
const createMeet = () => {
return new window.JitsiMeetExternalAPI("meet.jit.si", {
parentNode: document.getElementById("jitsi-root"),
roomName,
userInfo: {
displayName
},
interfaceConfigOverwrite: {
SHOW_JITSI_WATERMARK: false,
SHOW_WATERMARK_FOR_GUESTS: false,
SHOW_CHROME_EXTENSION_BANNER: false,
SHOW_POWERED_BY: false,
},
configOverwrite: {
disableSimulcast: false,
},
});
};
useEffect(() => initialize(), []);
return return <div id="jitsi-root" />;
}
import React, { useState } from "react";
const JitsiMeet = ({ roomName, displayName }) => {
const [jitsi, setJitsi] = useState<JitsiInstance | null>(null);
const initialize = async () => {
await loadScript("https://meet.jit.si/external_api.js", true);
setJitsi(createMeet());
};
const destroy = () => {
jitsi?.dispose();
}
const createMeet = () => {
return new window.JitsiMeetExternalAPI("meet.jit.si", {
parentNode: document.getElementById("jitsi-root"),
roomName,
userInfo: {
displayName
},
interfaceConfigOverwrite: {
SHOW_JITSI_WATERMARK: false,
SHOW_WATERMARK_FOR_GUESTS: false,
SHOW_CHROME_EXTENSION_BANNER: false,
SHOW_POWERED_BY: false,
},
configOverwrite: {
disableSimulcast: false,
},
});
};
useEffect(() => {
initialize();
return () => destroy();
}, []);
return return <div id="jitsi-root" />;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment