diff --git a/client/Application.js b/client/Application.js new file mode 100644 index 00000000..b207ccc5 --- /dev/null +++ b/client/Application.js @@ -0,0 +1,82 @@ +import React, { Component } from 'react' +import { connect } from 'react-redux' +import PropTypes from 'prop-types' +import { Route, HashRouter, Redirect, Switch } from 'react-router-dom' +import { Home, ProjectGroups, Interface, News, AddInterface } from './containers/index' +import User from './containers/User/User.js' +import Header from './components/Header/Header' +import { checkLoginState } from './actions/login' + +const LOADING_STATUS = 0; +const GUEST_STATUS = 1; +// const MEMBER_STATUS = 2; + + +class App extends Component { + + constructor(props) { + super(props); + this.state = { + login: LOADING_STATUS + } + } + static propTypes = { + checkLoginState:PropTypes.func, + loginState:PropTypes.number + } + route = (status) => { + let r; + if (status === LOADING_STATUS) { + return loading... + } else if (status === GUEST_STATUS) { + r = ( + +
+
+ + + + +
+
+ ) + } else { + r = ( + +
+
+ + + + + + +
+
+ ) + } + return r + + } + + componentDidMount() { + this.props.checkLoginState(); + } + + render() { + return this.route(this.props.loginState) + } +} + +export default connect( + state => { + return{ + loginState:state.login.loginState + } + }, + { + checkLoginState + } +)(App) diff --git a/client/index.js b/client/index.js index 577cb6e7..6a41341d 100644 --- a/client/index.js +++ b/client/index.js @@ -3,7 +3,7 @@ import 'babel-polyfill' import thunkMiddleware from 'redux-thunk' import promiseMiddleware from 'redux-promise'; import ReactDOM from 'react-dom' -import App from './App' +import App from './Application' import { createStore, combineReducers, applyMiddleware } from 'redux' import { Provider } from 'react-redux' import ReduxContainer from './ReduxContainer.js'