source: client_app/src/components/main/App.js@ 2e507a8

Last change on this file since 2e507a8 was 2e507a8, checked in by Vzdra <vladko.zdravkovski@…>, 3 years ago

front end additions

  • Property mode set to 100644
File size: 3.1 KB
Line 
1import React, {Component} from 'react';
2import {BrowserRouter as Router, Route, Redirect} from 'react-router-dom';
3import Login from '../login/login';
4import Profile from "../data/profile";
5import 'semantic-ui-css/semantic.min.css';
6import HeaderComp from '../template/header';
7import './App.css';
8import UserLogin from "../../repository/login_repo";
9import UserJobs from "../data/components/user_jobs";
10import UserInternships from "../data/components/user_internships";
11import UserProjects from "../data/components/user_projects";
12import CompanyJobs from "../data/components/company_jobs";
13
14class App extends Component{
15 constructor(props) {
16 super(props);
17 this.state = {
18 logged: false,
19 error: null,
20 currentUser: {
21 }
22 }
23 }
24
25 render(){
26 return(
27 <Router>
28 <HeaderComp acc={this.state.currentUser.email} accType={this.state.currentUser.type} name={this.state.currentUser.name} removeState={this.removeState}/>
29 <main>
30 <Route path={"/login"} render={() => <Login error={this.state.error} onCompleteForm={this.attemptLogin} loggedIn={this.state.logged}/>} />
31 <Route path={"/profile"} render={() => <Profile userProfile={this.state.currentUser}/>} />
32 <Route path={"/user/jobs"} render={() => <UserJobs userProfile={this.state.currentUser}/>} />
33 <Route path={"/user/internships"} render={() => <UserInternships userProfile={this.state.currentUser}/>} />
34 <Route path={"/user/projects"} render={() => <UserProjects userProfile={this.state.currentUser}/>} />
35 <Route path={"/team/jobs"} />
36 <Route path={"/team/projects"} />
37 <Route path={"/company/jobs"} render={() => <CompanyJobs userProfile={this.state.currentUser} />}/>
38 <Route path={"/company/internships"}/>
39 <Route path={"/profile/edit"} />
40 <Route path={"/job/edit"} />
41 <Route path={"/internship/edit"}/>
42 <Route path={"/project/edit"} />
43 <Route path={"/logout"} render={() => <Redirect to={"/login"}/>}/>
44 <Route path={"/"} render={() => <Redirect to={"/login"}/>}/>
45 </main>
46 </Router>
47 );
48 }
49
50 removeState = () => {
51 this.setState({
52 logged: false,
53 error: null,
54 currentUser: {}
55 })
56 }
57
58
59 attemptLogin = (email, password, type) => {
60 UserLogin.login(email, password, type).then((res) =>{
61 console.log(res.data);
62 if(res.data.email==null){
63 this.setState({
64 logged: false,
65 error: res.data.error,
66 });
67 }else{
68 this.setState({
69 logged: true,
70 currentUser: res.data,
71 error: null,
72 });
73 }
74 });
75
76 if(this.state.currentUser.email!=null){
77 return <Redirect to={"/profile"}/>;
78 }
79 }
80}
81
82export default App;
Note: See TracBrowser for help on using the repository browser.