CEC-3759-Collapsible-Sidemenu (#292)

* first push

* Code smell

---------

Co-authored-by: jwu-fisker <jwu@fiskerinc.com>
This commit is contained in:
das31
2023-03-17 17:08:43 -04:00
committed by GitHub
parent fd177b2656
commit 8090bfdc6f
3 changed files with 364 additions and 10 deletions

View File

@@ -14,6 +14,30 @@ exports[`App Route / authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -650,6 +674,30 @@ exports[`App Route /home authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -1286,6 +1334,30 @@ exports[`App Route /issue-info authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -1905,6 +1977,30 @@ exports[`App Route /issues authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -2767,6 +2863,30 @@ exports[`App Route /package-deploy authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -3838,6 +3958,30 @@ exports[`App Route /package-status authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -4644,6 +4788,30 @@ exports[`App Route /packages authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -5664,6 +5832,30 @@ exports[`App Route /page-not-found authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -6225,6 +6417,30 @@ exports[`App Route /tools/certificates/add authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -7057,6 +7273,30 @@ exports[`App Route /tools/security-dll authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -7451,6 +7691,30 @@ exports[`App Route /tools/sms/send authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -8149,6 +8413,30 @@ exports[`App Route /vehicle-add authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -9265,6 +9553,30 @@ exports[`App Route /vehicle-status authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"
@@ -10316,6 +10628,30 @@ exports[`App Route /vehicles authenticated 1`] = `
<div <div
class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters" class="MuiToolbar-root MuiToolbar-regular MuiToolbar-gutters"
> >
<button
aria-label="toggle drawer"
class="MuiButtonBase-root MuiIconButton-root makeStyles-menuButton-0 MuiIconButton-colorInherit MuiIconButton-edgeStart"
tabindex="0"
type="button"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
</svg>
</span>
<span
class="MuiTouchRipple-root"
/>
</button>
<div> <div>
<h6 <h6
class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap" class="MuiTypography-root MuiTypography-h6 MuiTypography-noWrap"

View File

@@ -58,11 +58,7 @@ const DigitalTwin = (props) => {
<div className={classes.popupSection}> <div className={classes.popupSection}>
<h3>Door Locks</h3> <h3>Door Locks</h3>
{Object.entries(door_locks).map((value) => { {Object.entries(door_locks).map((value) => {
if (value[0] === "driver") {
return keyValueTemplate(value[0], value[1] ? LOCKED : UNLOCKED); return keyValueTemplate(value[0], value[1] ? LOCKED : UNLOCKED);
} else {
return keyValueTemplate(value[0], value[1] ? LOCKED : UNLOCKED);
}
})} })}
</div> </div>
)} )}

View File

@@ -1,4 +1,4 @@
import React from "react"; import React, { useState } from "react";
import clsx from "clsx"; import clsx from "clsx";
import { import {
Container, Container,
@@ -7,8 +7,10 @@ import {
Toolbar, Toolbar,
Typography, Typography,
Divider, Divider,
IconButton,
} from "@material-ui/core"; } from "@material-ui/core";
import MenuIcon from "@material-ui/icons/Menu";
import SideMenu from "./SideMenu"; import SideMenu from "./SideMenu";
import useStyles from "../useStyles"; import useStyles from "../useStyles";
import { useUserContext } from "../Contexts/UserContext"; import { useUserContext } from "../Contexts/UserContext";
@@ -22,20 +24,40 @@ export default function MenuDrawer({ children }) {
const { title, sitePath } = useStatusContext(); const { title, sitePath } = useStatusContext();
const { token } = useUserContext(); const { token } = useUserContext();
const [drawerOpen, setDrawerOpen] = useState(true);
const toggleDrawer = () => {
setDrawerOpen(!drawerOpen);
};
return ( return (
<div className={classes.root}> <div className={classes.root}>
<AppBar <AppBar
position="fixed" position="fixed"
className={clsx(classes.appBar, { className={clsx(classes.appBar, {
[classes.appBarShift]: token !== null, [classes.appBarShift]: token !== null && drawerOpen,
})} })}
> >
<Toolbar> <Toolbar>
{token !== null && (
<IconButton
edge="start"
color="inherit"
aria-label="toggle drawer"
onClick={toggleDrawer}
className={classes.menuButton}
>
<MenuIcon />
</IconButton>
)}
<div> <div>
<Typography variant="h6" noWrap> <Typography variant="h6" noWrap>
{title} {title}
</Typography> </Typography>
<SiteBreadcrumbs path={sitePath} className={classes.breadcrumbs} /> <SiteBreadcrumbs
path={sitePath}
className={classes.breadcrumbs}
/>
</div> </div>
{token !== null && ( {token !== null && (
<UserMenu color="inherit" className={classes.rightToolbar} /> <UserMenu color="inherit" className={classes.rightToolbar} />
@@ -47,7 +69,7 @@ export default function MenuDrawer({ children }) {
className={classes.drawer} className={classes.drawer}
variant="persistent" variant="persistent"
anchor="left" anchor="left"
open={true} open={drawerOpen}
classes={{ classes={{
paper: classes.drawerPaper, paper: classes.drawerPaper,
}} }}
@@ -65,7 +87,7 @@ export default function MenuDrawer({ children }) {
)} )}
<main <main
className={clsx(classes.content, { className={clsx(classes.content, {
[classes.contentShift]: token !== null, [classes.contentShift]: token !== null && drawerOpen,
})} })}
> >
<div className={classes.drawerHeader} /> <div className={classes.drawerHeader} />