source: client_app/src/components/main/App.js@ fc8421e

Last change on this file since fc8421e was fc8421e, checked in by i-ina <76742075+i-ina@…>, 3 years ago

initial jobs interface

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[3f5bf9e]1import React, {Component} from 'react';
[6f9b7b0]2import {BrowserRouter as Router, Route, Redirect} from 'react-router-dom';
[3f5bf9e]3import Login from '../login/login';
[17abe5e]4import Profile from "../data/profile";
[3f5bf9e]5import 'semantic-ui-css/semantic.min.css';
6import HeaderComp from '../template/header';
7import './App.css';
8import UserLogin from "../../repository/login_repo";
[fc8421e]9import UserJobs from "../data/components/user_jobs";
[3f5bf9e]10
11class App extends Component{
12 constructor(props) {
13 super(props);
14 this.state = {
[6f9b7b0]15 logged: false,
16 error: null,
[fc8421e]17 currentUser: {
18 }
[3f5bf9e]19 }
20 }
21
22 render(){
[6f9b7b0]23 return(
24 <Router>
25 <HeaderComp acc={this.state.currentUser.email} accType={this.state.currentUser.type} name={this.state.currentUser.name}/>
26 <main>
27 <Route path={"/login"} render={() => <Login error={this.state.error} onCompleteForm={this.attemptLogin} loggedIn={this.state.logged}/>}/>
28 <Route path={"/profile"} render={() => <Profile userProfile={this.state.currentUser}/>}/>
[fc8421e]29 <Route path={"/jobs"} render={() => <UserJobs userProfile={this.state.currentUser}/>}/>
[6f9b7b0]30 <Route path={"/"} render={() => <Redirect to={"/login"}/>}/>
31 </main>
32 </Router>
33 );
[3f5bf9e]34 }
35
[17abe5e]36 attemptLogin = (email, password, type) => {
37 UserLogin.login(email, password, type).then((res) =>{
[3f5bf9e]38 console.log(res.data);
[6f9b7b0]39 if(res.data.email==null){
40 this.setState({
41 logged: false,
42 error: res.data.error,
43 });
44 }else{
45 this.setState({
46 logged: true,
47 currentUser: res.data,
48 error: null,
49 });
50 }
[3f5bf9e]51 });
[6f9b7b0]52
53 if(this.state.currentUser.email!=null){
54 return <Redirect to={"/profile"}/>;
55 }
[3f5bf9e]56 }
57}
58
59export default App;
Note: See TracBrowser for help on using the repository browser.