import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, browserHistory, Redirect } from 'react-router';
import Dashboard from './Dashboard';
import Login from './Login';
import VacancyPage from './VacancyPage';
import ProfilePage from './ProfilePage';
import CompanyProfile from './CompanyProfile';
import CreateVacancy from './CreateVacancy';
import Server from './lib/Server';
import Storage from './lib/Storage';
import ApplicantPage from './ApplicantPage';
import TranscriptPage from './TranscriptPage';
import AdminVacancyPage from './AdminVacancyPage';
import CompanyPage from './CompanyPage';
import SupervisorPage from './SupervisorPage';
export default class App extends React.Component {
static getRole() {
if (Server.isLoggedIn()) {
const data = Storage.get('user-data');
if (data.is_staff) {
return 'admin';
} else if (data.supervisor) {
return 'supervisor';
} else if (data.student) {
return 'student';
} else if (data.company) {
return 'company';
}
return 'error';
}
return 'not-logged-in';
}
constructor(props) {
super(props);
/* istanbul ignore next */
this.handleAuth = this.handleAuth.bind(this);
this.handleHome = this.handleHome.bind(this);
}
authorization = allowedRoles =>
WrappedComponent => (
/* eslint-disable no-multi-comp */
class WithAuthorization extends React.Component {
constructor(props) {
super(props);
this.state = {
user: {
role: App.getRole(),
data: Storage.get('user-data'),
},
};
}
render() {
const { role } = this.state.user;
// const props = this.props;
if (allowedRoles.includes(role)) {
return