UNPKG

ih-portal

Version:

A project for connecting interaction hub services with catalyst-ui components

100 lines (89 loc) 2.98 kB
import React, { Component, PropTypes } from 'react'; import ReactDOM from "react-dom"; import { Provider } from 'react-redux'; import injectTapEventPlugin from 'react-tap-event-plugin'; import './index.less'; import 'react-object-inspector/react-object-inspector.css'; import { blackLionLog, initBlackLionCaching } from 'ih-black-lion'; import SessionStorage from '../src/utils/asyncSessionStorage'; import ServiceProvider from './services/ServiceProvider.jsx'; import PageletProvider from './pagelets/PageletProvider.jsx'; import AcademicTabProvider from '../src/tabs/AcademicTabProvider.jsx'; import DashboardTabProvider from '../src/tabs/DashboardTabProvider.jsx'; import AdmissionsTabProvider from '../src/tabs/AdmissionsTabProvider.jsx'; import FinanceTabProvider from '../src/tabs/FinanceTabProvider.jsx'; import { Router, Route, Link } from 'react-router'; import { createHashHistory as createHistory } from 'history'; injectTapEventPlugin(); // blackLionLog.setLevel('silent', true); const { arrayOf, node, oneOfType } = PropTypes; class IhPortal extends Component { render() { return ( <div key="ih-sandbox"> <div id="Nav"> <ul> <li> <Link to="/services">Services</Link> </li> <li> <Link to="/pagelets">Pagelets</Link> </li> <li> <Link to="/dashboardtab">Dashboard Tab</Link> </li> <li> <Link to="/academictab">Academic Tab</Link> </li> <li> <Link to="/admissionstab">Admissions Tab</Link> </li> <li> <Link to="/financetab">Finance Tab</Link> </li> </ul> </div> {this.props.children} </div> ); } } IhPortal.propTypes = { children: oneOfType([ node, arrayOf(node), ]), }; const routes = ( <Route path="/" component={IhPortal}> <Route path="services" component={ServiceProvider} /> <Route path="pagelets" component={PageletProvider} /> <Route path="dashboardtab" component={DashboardTabProvider} /> <Route path="academictab" component={AcademicTabProvider} /> <Route path="admissionstab" component={AdmissionsTabProvider} /> <Route path="financetab" component={FinanceTabProvider} /> </Route> ); /** * Sets up an instance of a BlackLion store that gets initially hydrated by sessionStorage. */ initBlackLionCaching( (blackLion, blackLionPersistor) => { ReactDOM.render(( <div key="top-level-node"> <Provider key="Provider" store={blackLion}> <Router key="Router" history={createHistory()}>{routes}</Router> </Provider> </div> ), document.getElementById('app') ); let clearCacheInterval = setInterval(() => { blackLionPersistor.purgeAll(); }, 10 * 60 * 1000); }, { blacklist: [], storage: SessionStorage, skipRestore: true, } );