UNPKG

1.48 kBJavaScriptView Raw
1import React from 'react';
2import ReactDOM from 'react-dom';
3import { createRenderer as createFelaRenderer } from 'fela';
4import { Provider as FelaProvider, ThemeProvider } from 'react-fela';
5import { ServerEventsProvider } from './components/ServerEventsProvider';
6
7// Here we get the config injected by webpack. This is done with a custom
8// alias, which is configured in config/webpack.config.dev.js
9import config from 'injected-boards-config'; // eslint-disable-line
10
11// Create event source stream for server sent events, this is where the
12// widget backends send their data
13const serverEvents = new EventSource(`${location.origin}/events`);
14
15// Create the apps container element
16const app = document.createElement('div');
17app.id = 'app';
18document.body.appendChild(app);
19
20// Create a style element in head for fela to render into
21const styles = document.createElement('style');
22document.head.appendChild(styles);
23
24// Instanciate fela renderer
25const felaRenderer = createFelaRenderer();
26
27// Render styles for container elements to enable full screen styling
28felaRenderer.renderStatic({
29 height: '100%',
30 margin: 0,
31}, 'html, body, #app');
32
33// Render the app
34ReactDOM.render(
35 React.createElement(FelaProvider, { renderer: felaRenderer, mountNode: styles },
36 React.createElement(ThemeProvider, { theme: {} },
37 React.createElement(ServerEventsProvider, { source: serverEvents },
38 config({}),
39 ),
40 ),
41 ),
42 app,
43);