Sha256: 2be113eef800c0259fe684a30c9585f5a196902640e7cb6ae07f40b48b59a20c

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

import React        from 'react';
import ReactDOM     from 'react-dom';
import whenDomReady from 'when-dom-ready';
import { delay } from 'lodash'
import { AppContainer } from 'react-hot-loader';
import { withAsyncComponents } from 'react-async-component';

import Config from './config';

const Workspace = require('lanes/workspace').default;

let Root;
let App;

function renderer(Body) {
    withAsyncComponents(<AppContainer><Body /></AppContainer>)
        .then((result) => {
            App = result.appWithAsyncComponents;
            ReactDOM.render(App, Root);
        });
}

if (module.hot) {
    module.hot.accept('lanes/workspace', () => {
        const WSNext = require('lanes/workspace').default;
        renderer(WSNext);
    });
}

whenDomReady().then(() => {
    if (Root) return;
    /* global document: true  */
    Root = document.getElementById('lanes-root');
    Config.bootstrap(JSON.parse(document.getElementById('bootstrap-data').innerHTML));
    /* global document: false */
    renderer(Workspace);
    const loading = document.querySelector('.loading');
    if (loading) {
        loading.classList.add('complete');
        delay(() => loading.parentNode.removeChild(loading), 400);
    }
});

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lanes-0.8.2 client/lanes/boot.jsx
lanes-0.8.1 client/lanes/boot.jsx
lanes-0.8.0 client/lanes/boot.jsx