kandimat/redaktions-app/src/components/Main.tsx
2021-01-09 12:49:28 +01:00

61 lines
1.6 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 = () => {
const jwt = getJsonWebToken();
if (jwt) {
switch (jwt.role) {
case "candymat_editor":
return <MainPageEditor />;
case "candymat_candidate":
return <MainPageCandidate personRowId={jwt.person_row_id} />;
case "candymat_person":
return <MainPageUser />;
}
} else {
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;