Routers.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 ConnectedProjects from "pages/AllProjects";
  14. import ConnectedSearchProject from "pages/SeachProjects";
  15. import ConnectedMyProject from "pages/MyProjects";
  16. const history = createHistory.createBrowserHistory();
  17. const ConnectLoginForm = connect(null, { onLogin: actionFullLogin })(LoginForm);
  18. const ConnectFormReg = connect(null, { FormReg: actionFullRegister })(FormReg);
  19. const Routs = ({ token }) => {
  20. return (
  21. <div className='App'>
  22. <Router history={history}>
  23. {token && (
  24. <Switch>
  25. <Redirect from='/login' to='/work' />
  26. <Redirect from='/reg' to='/work' />
  27. <Route exact path='/work' component={Home} />
  28. <Route path='/cabinet' component={Cabinet} />
  29. <Route path='/projects' component={ConnectedProjects} />
  30. <Route path='/search-project/:id' component={ConnectedSearchProject} />
  31. <Route path='/my-project/:id' component={ConnectedMyProject} />
  32. <Route path='/search' component={ConnectFormSearch} />
  33. </Switch>
  34. )}
  35. {!token && (
  36. <Switch>
  37. <Route path='/login' component={ConnectLoginForm} />
  38. <Route path='/reg' component={ConnectFormReg} />
  39. <Route path='/' component={Main} />
  40. </Switch>
  41. )}
  42. </Router>
  43. </div>
  44. );
  45. };
  46. const ConnectedRouts = connect(state => ({ token: state.auth.token }), null)(Routs);
  47. export default ConnectedRouts;