diff options
author | Saúl Ibarra Corretgé <s@saghul.net> | 2018-05-21 22:06:55 +0200 |
---|---|---|
committer | hristoterezov <hristo@jitsi.org> | 2018-05-23 17:02:15 -0500 |
commit | 42be5336146a0d7a3d2c448107e3025e2c553928 (patch) | |
tree | 8120f4e5bbb04341319fb5301f0e19c142474471 | |
parent | cfcab5e00784598ee7121c190fda48886876d963 (diff) |
Reorganize source code
-rw-r--r-- | .babelrc | 5 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | app/features/app/components/App.js | 32 | ||||
-rw-r--r-- | app/features/app/components/index.js | 1 | ||||
-rw-r--r-- | app/features/app/index.js | 1 | ||||
-rw-r--r-- | app/features/conference/components/Conference.js (renamed from windows/jitsi-meet/src/index.js) | 33 | ||||
-rw-r--r-- | app/features/conference/components/index.js | 1 | ||||
-rw-r--r-- | app/features/conference/index.js | 1 | ||||
-rw-r--r-- | app/features/config/index.js | 12 | ||||
-rw-r--r-- | app/index.html (renamed from templates/index.html) | 1 | ||||
-rw-r--r-- | app/index.js | 9 | ||||
-rw-r--r-- | config.js | 6 | ||||
-rw-r--r-- | webpack.config.js | 14 |
13 files changed, 85 insertions, 34 deletions
diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 91ad003..0000000 --- a/.babelrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "presets": [ - "react" - ] -}
\ No newline at end of file @@ -4,6 +4,7 @@ .sync-config.cson .electron-gyp .npmrc +.idea .DS_Store @@ -14,4 +15,4 @@ npm-debug.log Jitsi Meet* -build/
\ No newline at end of file +build/ diff --git a/app/features/app/components/App.js b/app/features/app/components/App.js new file mode 100644 index 0000000..2afd502 --- /dev/null +++ b/app/features/app/components/App.js @@ -0,0 +1,32 @@ +import React, { Component } from 'react'; + +import { Conference } from '../../conference'; +import config from '../../config'; + +/** + * Main component encapsulating the entire application. + */ +export default class App extends Component { + /** + * Initializes a new {@code App} instance. + * + * @inheritdoc + */ + constructor() { + super(); + + document.title = config.appName; + } + + /** + * Implements React's {@link Component#render()}. + * + * @inheritdoc + * @returns {ReactElement} + */ + render() { + return ( + <Conference /> + ); + } +} diff --git a/app/features/app/components/index.js b/app/features/app/components/index.js new file mode 100644 index 0000000..c866729 --- /dev/null +++ b/app/features/app/components/index.js @@ -0,0 +1 @@ +export { default as App } from './App'; diff --git a/app/features/app/index.js b/app/features/app/index.js new file mode 100644 index 0000000..07635cb --- /dev/null +++ b/app/features/app/index.js @@ -0,0 +1 @@ +export * from './components'; diff --git a/windows/jitsi-meet/src/index.js b/app/features/conference/components/Conference.js index b7d7e36..e77ece9 100644 --- a/windows/jitsi-meet/src/index.js +++ b/app/features/conference/components/Conference.js @@ -1,5 +1,4 @@ -import React from 'react'; -import { render } from 'react-dom'; +import { Component } from 'react'; import { RemoteControl, @@ -8,43 +7,43 @@ import { setupWiFiStats } from 'jitsi-meet-electron-utils'; -import { jitsiMeetDomain } from '../../../config.js'; +import config from '../../config'; /** * Jitsi Meet Window Component */ -class JitsiMeetWindow extends React.Component { - - /** - * Render function of component - * @return {ScriptElement} - */ - render() { - return null; - } - +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; - script.src = `https://${jitsiMeetDomain}/external_api.js`; + script.src = `https://${config.defaultDomain}/external_api.js`; document.head.appendChild(script); } + + /** + * 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; - const api = new JitsiMeetExternalAPI(jitsiMeetDomain); + const api = new JitsiMeetExternalAPI(config.defaultDomain); const iframe = api.getIFrame(); setupScreenSharingForWindow(iframe); @@ -53,5 +52,3 @@ class JitsiMeetWindow extends React.Component { setupWiFiStats(iframe); } } - -render(<JitsiMeetWindow />, document.getElementById('app')); diff --git a/app/features/conference/components/index.js b/app/features/conference/components/index.js new file mode 100644 index 0000000..7ee56f5 --- /dev/null +++ b/app/features/conference/components/index.js @@ -0,0 +1 @@ +export { default as Conference } from './Conference'; diff --git a/app/features/conference/index.js b/app/features/conference/index.js new file mode 100644 index 0000000..07635cb --- /dev/null +++ b/app/features/conference/index.js @@ -0,0 +1 @@ +export * from './components'; diff --git a/app/features/config/index.js b/app/features/config/index.js new file mode 100644 index 0000000..22d3806 --- /dev/null +++ b/app/features/config/index.js @@ -0,0 +1,12 @@ + +export default { + /** + * Application name. + */ + appName: 'Jitsi Meet', + + /** + * The domain of the Jitsi Meet deployment that will be used. + */ + defaultDomain: 'meet.jit.si' +}; diff --git a/templates/index.html b/app/index.html index 48f1288..befc6f9 100644 --- a/templates/index.html +++ b/app/index.html @@ -1,7 +1,6 @@ <!DOCTYPE html> <html> <head> - <title><%= htmlWebpackPlugin.options.title %></title> <style> body, html { margin: 0; diff --git a/app/index.js b/app/index.js new file mode 100644 index 0000000..968cd0f --- /dev/null +++ b/app/index.js @@ -0,0 +1,9 @@ +import React from 'react'; +import { render } from 'react-dom'; + +import { App } from './features/app'; + +/** + * Render the main / root application. + */ +render(<App />, document.getElementById('app')); diff --git a/config.js b/config.js deleted file mode 100644 index 73d54c3..0000000 --- a/config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - /** - * The domain of the Jitsi Meet deployment that will be used. - */ - jitsiMeetDomain: 'meet.jit.si' -}; diff --git a/webpack.config.js b/webpack.config.js index 4d6ac55..1d2bea9 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -15,6 +15,15 @@ const commonConfig = { { exclude: /(node_modules)/, loader: 'babel-loader', + options: { + presets: [ + [ + require.resolve('babel-preset-env'), + { modules: false } + ], + require.resolve('babel-preset-react') + ] + }, test: /\.js$/ }, { @@ -41,11 +50,10 @@ module.exports = [ commonConfig), Object.assign({ target: 'electron-renderer', - entry: { renderer: './windows/jitsi-meet/src/index.js' }, + entry: { renderer: './app/index.js' }, plugins: [ new HtmlWebpackPlugin({ - title: 'Jitsi Meet', - template: path.resolve('./templates/index.html') + template: './app/index.html' }) ] }, |