cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
52 lines (41 loc) • 1.3 kB
JSX
var __cluedIn = window.__cluedIn || {};
import React from 'react'
import ReactDOM from 'react-dom'
import { createStore, applyMiddleware, combineReducers } from 'redux'
import { Provider } from 'react-redux'
import reducers from '../reducers/index'
import thunkMiddleware from 'redux-thunk'
import createLogger from 'redux-logger'
import CluedInApp from './cluedinapp.jsx'
const loggerMiddleware = createLogger();
import cookie from '../helpers/cookie';
let timeOut;
const createStoreWithMiddleware = applyMiddleware(
thunkMiddleware,
loggerMiddleware
)( createStore );
const initialState = {
core: {
token: __cluedIn.token || '',
widgets: __cluedIn.widgets || [],
org: __cluedIn.org
}
};
const reducer = combineReducers( Object.assign( {}, reducers ) );
const store = createStoreWithMiddleware( reducer, initialState );
var inject = ( DOMElement ) => {
DOMElement.__injected = true;
ReactDOM.render(
<Provider store={store}>
<CluedInApp></CluedInApp>
</Provider>,
DOMElement
);
};
var checkIfCluedInPresent = () => {
var cluedIn = document.querySelector( 'cluedin' );
if ( cluedIn && !cluedIn.__injected ) {
inject( cluedIn );
}
};
timeOut = setInterval( checkIfCluedInPresent, 50 );