App.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import React, { useEffect, useState } from "react";
  2. import {
  3. BrowserRouter as Router,
  4. Route,
  5. Redirect,
  6. Switch,
  7. } from "react-router-dom";
  8. import { connect } from "react-redux";
  9. import { Provider } from "react-redux";
  10. import store from "./store";
  11. import history from "./utils/history";
  12. // import {ConnectedRouter} from 'react-router-redux';
  13. import "./styles/Reset.css";
  14. import "./styles/App.css";
  15. import RegisterForm from "./components/RegisterForm";
  16. import LoginForm from "./components/LoginForm";
  17. import Lib from "./components/Library";
  18. import Playlist from "./components/Playlist";
  19. const PrivateRoute = (props) => {
  20. console.log(props);
  21. const { children, ...rest } = props;
  22. return (
  23. <Route
  24. {...rest}
  25. render={({ location }) => {
  26. return localStorage.authToken ? (
  27. children
  28. ) : (
  29. <Redirect
  30. to={{
  31. pathname: "/login",
  32. state: { from: location },
  33. }}
  34. />
  35. );
  36. }}
  37. />
  38. );
  39. };
  40. export default () => {
  41. return (
  42. <Provider store={store}>
  43. <div className="App">
  44. {/* <Router history={history}> */}
  45. <Router history={history}>
  46. <Switch>
  47. <Route exact path="/" component={RegisterForm} />
  48. <Route exact path="/login" component={LoginForm} />
  49. <Route exact path="/playlist" component={Playlist} />
  50. <PrivateRoute path="/private">
  51. <Lib />
  52. </PrivateRoute>
  53. </Switch>
  54. </Router>
  55. </div>
  56. </Provider>
  57. );
  58. };