Skip to content
Snippets Groups Projects
App.js 1.95 KiB
import React from 'react';
import { Route, Switch } from "react-router-dom";
import { connect } from "react-redux";

//Higher order component protected route
import ProtectedRoute from "./Components/ProtectedRoute.react";

// Presentational Components
import AppHeader from "./Components/AppHeader.react";
// import HomePage from "./Components/HomePage.react";
import Login from "./Components/Login.react";
import UserDashboard from "./Components/UserDashboard.react";
import Signup from "./Components/Signup.react";
import SubsScreen from "./Components/SubsScreen.react";
import './App.scss';

function App(props) {
  const { isAuthenticated, isVerifying  , user } = props;

  return (
    <div className="rootApp" style={{ maxWidth: 1200, margin: '16px auto auto' }}>
      <AppHeader isAuthenticated={isAuthenticated} isVerifying={isVerifying} />
      <Switch>
        <ProtectedRoute
          exact path='/'
          component={()=>{return (<UserDashboard user={user ? user : false} />)}}
          isAuthenticated={isAuthenticated}
          isVerifying={isVerifying} >
        </ProtectedRoute>

        <ProtectedRoute
          exact path='/mysubmissions'
          component={()=>{return (<SubsScreen mySubs={true} user={user ? user : false} />)}}
          isAuthenticated={isAuthenticated}
          isVerifying={isVerifying} >
        </ProtectedRoute>

        <ProtectedRoute
          exact path='/partnerssubmissions'
          component={()=>{return (<SubsScreen mySubs={false} user={user ? user : false} />)}}
          isAuthenticated={isAuthenticated}
          isVerifying={isVerifying} >
        </ProtectedRoute>

        <Route path="/login" component={Login} />

        <Route path="/signup" component={Signup} />
      </Switch>
    </div>
  );
}

function mapStateToProps(state) {
  return {
    isAuthenticated: state.auth.isAuthenticated,
    isVerifying: state.auth.isVerifying,
    user: state.auth.user
  };
}

export default connect(mapStateToProps)(App);