You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
educoder/public/react/src/forge/Index.js

72 lines
1.6 KiB

import React , { Component } from 'react';
import {Route,Switch} from 'react-router-dom';
import { SnackbarHOC } from 'educoder';
import { CNotificationHOC } from '../modules/courses/common/CNotificationHOC';
import './css/index.css';
import Loadable from 'react-loadable';
import Loading from '../Loading';
const ProjectNew = Loadable({
loader: () => import('./New/Index'),
loading: Loading,
})
const ProjectIndex = Loadable({
loader: () => import('./Main/Index'),
loading: Loading,
})
const ProjectDetail = Loadable({
loader: () => import('./Main/Detail'),
loading: Loading,
})
class Index extends Component{
constructor(props){
super(props);
this.state={
current_user:undefined
}
}
componentDidMount=()=>{
let current_user={
user_id:50207,
login:'caicc'
}
this.setState({
current_user
})
}
render(){
const {current_user} = this.state;
return(
<Switch {...this.props}>
<Route exact path="/projects/:projectsType/new"
render={
(props) => (<ProjectNew {...this.props} {...props} {...this.state} current_user={current_user}/>)
}
></Route>
<Route exact path="/projects/:projectsId"
render={
(props) => (<ProjectDetail {...this.props} {...props} {...this.state} current_user={current_user}/>)
}
></Route>
<Route exact path="/projects"
render={
(props) => (<ProjectIndex {...this.props} {...props} {...this.state} current_user={current_user}/>)
}
></Route>
</Switch>
)
}
}
export default CNotificationHOC() ( SnackbarHOC() ( Index ));