Skip to content
Snippets Groups Projects
App.js 1.75 KiB
Newer Older
Orlando Piñero's avatar
Orlando Piñero committed
import React, { Component } from 'react';
Orlando Piñero's avatar
Orlando Piñero committed
import './App.css';
import TopMenu from './components/TopMenu';
Orlando Piñero's avatar
Orlando Piñero committed
import PublicPage from './components/PublicPage';
import PrivatePage from './components/PrivatePage';
import UserManagement from './components/UserComponents/UserManagement';
import DegreeCourseManagement from './components/DegreeCourseComponents/DegreeCourseManagement';
import CreateNewUserForm from './components/UserComponents/CreateNewUser';
Orlando Piñero's avatar
Orlando Piñero committed
import DegreeCourseApplicationManagement from './components/ApplicationComponents/DegreeCourseApplicationManagement'
Orlando Piñero's avatar
Orlando Piñero committed
import { connect } from 'react-redux';
Orlando Piñero's avatar
Orlando Piñero committed
import { Routes, Route, Navigate } from 'react-router-dom';
Orlando Piñero's avatar
Orlando Piñero committed
const mapStateToProps = state => {
  return {
    user: state.AuthenticationReducer.user
};
Orlando Piñero's avatar
Orlando Piñero committed
}

Orlando Piñero's avatar
Orlando Piñero committed
class App extends Component {
  render() {
    const user = this.props.user
    let workspace;
Orlando Piñero's avatar
Orlando Piñero committed

Orlando Piñero's avatar
Orlando Piñero committed
    if (user) {
Orlando Piñero's avatar
Orlando Piñero committed
      workspace =
        <Routes>
          <Route path="/" element={<PrivatePage />}></Route>
          <Route exact path="/userManagement" element={<UserManagement />}></Route>
          <Route path='/createNewUserForm' element={<CreateNewUserForm />}></Route>
Orlando Piñero's avatar
Orlando Piñero committed
          <Route exact path='/degreeCourseManagement' element={<DegreeCourseManagement />}></Route>
          <Route path='/degreeCourseApplicationManagement' element={<DegreeCourseApplicationManagement />}></Route>
Orlando Piñero's avatar
Orlando Piñero committed
          <Route path='*' element={<Navigate to="/" />}></Route>
        </Routes>
Orlando Piñero's avatar
Orlando Piñero committed
    } else {
Orlando Piñero's avatar
Orlando Piñero committed
      workspace =
        <Routes>
          <Route path="/" element={<PublicPage />}></Route>
          <Route path='*' element={<Navigate to="/" />}></Route>
        </Routes>
Orlando Piñero's avatar
Orlando Piñero committed
    }

    return (
      <div className="App">
        <TopMenu />
        {workspace}
      </div>
    );
  }
}


export default connect(mapStateToProps)(App);