54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import CustomAppBar from "./CustomAppBar";
|
|
import React from "react";
|
|
import {makeStyles} from "@material-ui/core/styles";
|
|
import {MainPageEditor} from "./MainPageEditor";
|
|
import {getJsonWebToken} from "../jwt/jwt";
|
|
import {MainPageCandidate} from "./MainPageCandidate";
|
|
import {MainPageUser} from "./MainPageUser";
|
|
import {Link} from "react-router-dom";
|
|
import {Container} from "@material-ui/core";
|
|
|
|
const useStyles = makeStyles((theme) => ({
|
|
appBarSpacer: theme.mixins.toolbar,
|
|
content: {
|
|
flexGrow: 1,
|
|
height: '100vh',
|
|
overflow: 'auto',
|
|
},
|
|
invalidTokenContainer: {
|
|
paddingTop: theme.spacing(4),
|
|
paddingBottom: theme.spacing(4),
|
|
}
|
|
}));
|
|
|
|
function Main() {
|
|
const classes = useStyles();
|
|
const getMainPage = () => {
|
|
switch (getJsonWebToken()?.role) {
|
|
case "candymat_editor":
|
|
return <MainPageEditor/>;
|
|
case "candymat_candidate":
|
|
return <MainPageCandidate/>;
|
|
case "candymat_person":
|
|
return <MainPageUser/>;
|
|
default:
|
|
localStorage.removeItem('token');
|
|
return <Container className={classes.invalidTokenContainer}>
|
|
Du bist nicht eingelogged oder dein Token ist ungültig. Logge dich erneut ein.<br/>
|
|
Zur <Link to={"/login"}>Login Seite</Link>
|
|
</Container>
|
|
}
|
|
}
|
|
return (
|
|
<div>
|
|
<CustomAppBar/>
|
|
<main className={classes.content}>
|
|
<div className={classes.appBarSpacer}/>
|
|
{getMainPage()}
|
|
</main>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default Main;
|