Routers.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import React from "react";
  2. import { BrowserRouter as Router, Route, Switch, Redirect } from "react-router-dom";
  3. import * as createHistory from "history";
  4. import { connect } from "react-redux";
  5. import { actionFullLogin } from "store/actions/actionFullLogin";
  6. import { actionFullRegister } from "store/actions/actionFullRegister";
  7. import { LoginForm } from "pages/LoginForm";
  8. import { FormReg } from "pages/FormReg";
  9. import { Main } from "pages/Main";
  10. import { Home } from "pages/WorkPage";
  11. import { Cabinet } from "pages/Cabinet";
  12. import ConnectFormSearch from "pages/Search";
  13. import CProjects from "pages/Projects";
  14. import ConnectedProject from "pages/Project";
  15. const history = createHistory.createBrowserHistory();
  16. const ConnectLoginForm = connect(null, { onLogin: actionFullLogin })(LoginForm);
  17. const ConnectFormReg = connect(null, { FormReg: actionFullRegister })(FormReg);
  18. const Routs = ({ token }) => {
  19. return (
  20. <div className='App'>
  21. <Router history={history}>
  22. {token && (
  23. <Switch>
  24. <Redirect from='/login' to='/work' />
  25. <Redirect from='/reg' to='/work' />
  26. <Route exact path='/work' component={Home} />
  27. <Route path='/cabinet' component={Cabinet} />
  28. <Route path='/projects' component={CProjects} />
  29. <Route path='/project' component={ConnectedProject} />
  30. <Route path='/search' component={ConnectFormSearch} />
  31. </Switch>
  32. )}
  33. {!token && (
  34. <Switch>
  35. <Route path='/login' component={ConnectLoginForm} />
  36. <Route path='/reg' component={ConnectFormReg} />
  37. <Route path='/' component={Main} />
  38. </Switch>
  39. )}
  40. </Router>
  41. </div>
  42. );
  43. };
  44. const ConnectedRouts = connect(state => ({ token: state.a.token }), null)(Routs);
  45. export default ConnectedRouts;