jitsi-meet-electron/app/features/conference/components/Conference.js

60 lines
1.3 KiB
JavaScript
Raw Normal View History

2018-05-24 16:35:26 +02:00
// @flow
2018-05-21 22:06:55 +02:00
import { Component } from 'react';
import {
RemoteControl,
setupScreenSharingForWindow,
setupAlwaysOnTopRender,
setupWiFiStats
2018-05-24 16:35:26 +02:00
// $FlowFixMe
} from 'jitsi-meet-electron-utils';
2018-05-21 22:06:55 +02:00
import config from '../../config';
/**
* Jitsi Meet Window Component
*/
2018-05-24 16:35:26 +02:00
export default class Conference extends Component<{}> {
/**
* Attach the script
*/
componentDidMount() {
const script = document.createElement('script');
script.async = true;
script.onload = this._onScriptLoad;
script.onerror = console.error;
2018-05-21 22:06:55 +02:00
script.src = `https://${config.defaultDomain}/external_api.js`;
2018-05-24 16:35:26 +02:00
// $FlowFixMe
document.head.appendChild(script);
}
2018-05-21 22:06:55 +02:00
/**
* Render function of component.
*
* @return {ReactElement}
*/
render() {
return null;
}
/**
* When the script is loaded attach utils from jitsi-meet-electron-utils
*/
_onScriptLoad() {
const JitsiMeetExternalAPI = window.JitsiMeetExternalAPI;
2018-05-21 22:06:55 +02:00
const api = new JitsiMeetExternalAPI(config.defaultDomain);
const iframe = api.getIFrame();
setupScreenSharingForWindow(iframe);
new RemoteControl(iframe);
setupAlwaysOnTopRender(api);
setupWiFiStats(iframe);
}
}