/**
 * Created by Shen Mo on 2018/9/8
 */
import _ from 'lodash';
import React from 'react';
import ReactDOM from 'react-dom';
import Sidebar from 'components/sidebar/Sidebar.react';
import List from 'components/projects/Projects.react';
import Create from 'components/projects/create/ProjectCreate.react';
import Details from 'components/projects/details/ProjectDetailsRouteManager.react';
import {getNodeFromSelector} from "core/utils/dom";
import ErrorBoundary from "core/components/errorBoundary";
import {
	HashRouter as Router,
	Route,
	Redirect,
	Switch
} from 'react-router-dom';

window.projects = function(){

	const redirect = () => (<Redirect to={'/list'} />);
	const Safe_List = ErrorBoundary.withErrorBoundary({Component:List});
	const Safe_Create = ErrorBoundary.withErrorBoundary({Component:Create});
	const Safe_Details = ErrorBoundary.withErrorBoundary({Component:Details});

	ReactDOM.render(
		<Router>
			<div className={'main'}>
				<Sidebar active={'projects'} />
				<Switch>
					<Route exact path={'/'} render={redirect} />
					<Route path={'/list/:filters?'} component={Safe_List} />
					<Route path={'/create'} component={Safe_Create} />
					<Route path={`/detail/:projectId(\\d+)`} component={Safe_Details} />
				</Switch>
			</div>
		</Router>,
		getNodeFromSelector('#wrapper')
	)
};