app/panels/NotLoggedInPanel.tsx (48 lines of code) (raw):

import React from "react"; import { Button, Grid, Paper, Typography } from "@material-ui/core"; import clsx from "clsx"; import { ChevronRight } from "@material-ui/icons"; import { makeStyles } from "@material-ui/core/styles"; import { usePanelStyles } from "./PanelsCommon"; interface NotLoggedInPanelProps { bannerText?: string; } const useStyles = makeStyles({ actionPanel: { width: "800px", maxWidth: "1000px", }, loginBox: { marginLeft: "auto", marginRight: "auto", marginTop: "10em", }, bannerText: { textAlign: "center", }, }); const NotLoggedInPanel: React.FC<NotLoggedInPanelProps> = (props) => { const classes = useStyles(); const panelClasses = usePanelStyles(); return ( <Paper className={clsx( classes.actionPanel, classes.loginBox, panelClasses.panel )} > <Grid container direction="column" alignItems="center" spacing={3}> {props.bannerText ? ( <Grid item> <Typography variant="h6" className={classes.bannerText}> {props.bannerText} </Typography> </Grid> ) : undefined} {props.children} </Grid> </Paper> ); }; export default NotLoggedInPanel;