kandimat/redaktions-app/src/components/Main.tsx
2020-12-31 11:36:23 +01:00

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;