Spaces:
Sleeping
Sleeping
| import { | |
| AppBar, | |
| Box, | |
| Button, | |
| Grid, | |
| IconButton, | |
| Link, | |
| Modal, | |
| Toolbar, | |
| Tooltip, | |
| Typography, | |
| useMediaQuery, | |
| useScrollTrigger, | |
| useTheme | |
| } from "@mui/material"; | |
| import { FC, useContext, useState } from "react"; | |
| import { Navigate, useLocation, useNavigate, useNavigation } from "react-router-dom"; | |
| import { ThemeModeContext, ThemeSchemeContext } from "../../theme"; | |
| import DarkIcon from "@mui/icons-material/DarkModeOutlined"; | |
| import LightIcon from "@mui/icons-material/LightModeOutlined"; | |
| import MenuIcon from "@mui/icons-material/MenuTwoTone"; | |
| import { Home } from "@mui/icons-material"; | |
| interface HeaderProps { | |
| onMobile?: boolean; | |
| window?: () => Window; | |
| } | |
| const MainAppBar: FC<HeaderProps> = ({ onMobile, window }) => { | |
| const { toggleTheme, themeMode, setThemeMode } = useContext(ThemeModeContext); | |
| const location = useLocation(); | |
| const [openModal, setOpenModal] = useState(false) | |
| const handleOpen = () => setOpenModal(true) | |
| const handleClose = () => setOpenModal(false) | |
| const trigger = useScrollTrigger({ | |
| disableHysteresis: true, | |
| threshold: 0, | |
| target: window ? window() : undefined, | |
| }); | |
| const theme = useTheme(); | |
| const isSxUp = useMediaQuery(theme.breakpoints.up('sm')); | |
| const navigate = useNavigate() | |
| const style_modal = { | |
| position: "absolute" as "absolute", | |
| top: !isSxUp ? "50%" : "50%", | |
| left: "50%", | |
| transform: "translate(-50%, -50%)", | |
| width: !isSxUp ? "97%" : "auto", | |
| color: "inherit", | |
| bgcolor: "background.paper", | |
| p: !isSxUp ? 4 : 4, | |
| borderRadius: "35px", | |
| } | |
| return ( | |
| <> | |
| <AppBar position="sticky" elevation={trigger ? 0 : 0}> | |
| <Toolbar> | |
| <Grid container spacing={1} alignItems="center"> | |
| <Grid item sx={{ display: "flex", alignItems: "center", alignContent:"center", cursor:"pointer"}} onClick={(e) => navigate('/Home')}> | |
| <Home sx={{pr: 1.5, fontSize:30}}/> | |
| <Typography | |
| color="inherit" | |
| sx={{ fontWeight: "bold", letterSpacing: 1, fontSize: 20, fontFamily:"monospace" }} | |
| > | |
| AMP Aubay | |
| </Typography> | |
| </Grid> | |
| { isSxUp ? <Grid item sx={{ display: "flex", alignItems: "baseline" }} visibility={"visible"}> | |
| <Typography | |
| color="inherit" | |
| sx={{ fontWeight: "normal", letterSpacing: 0.5, fontSize: 20, fontFamily:"monospace", pl:1}} | |
| > | |
| // {location.pathname.replace("/", "")} | |
| </Typography> | |
| </Grid> : <Box></Box> | |
| } | |
| <Grid item xs></Grid> | |
| <Grid item> | |
| <Tooltip title="Switch Theme"> | |
| <IconButton size="large" color="inherit" onClick={toggleTheme}> | |
| {themeMode == "light" ? <DarkIcon /> : <LightIcon />} | |
| </IconButton> | |
| </Tooltip> | |
| </Grid> | |
| </Grid> | |
| <Button variant="tonal" color="tertiary" onClick={handleOpen}> | |
| About | |
| </Button> | |
| <div> | |
| <Modal | |
| open={openModal} | |
| onClose={handleClose} | |
| aria-labelledby="modal-modal-title" | |
| aria-describedby="modal-modal-description" | |
| > | |
| <Box sx={style_modal}> | |
| <Typography | |
| id="modal-modal-title" | |
| variant="h6" | |
| sx={{ | |
| paddingTop: "10px", | |
| fontFamily: "monospace", | |
| fontStyle: "italic", | |
| }} | |
| > | |
| VST Inference | |
| </Typography> | |
| <Typography | |
| id="modal-modal-title" | |
| variant="h6" | |
| sx={{ paddingTop: "10px", fontFamily: "monospace" }} | |
| component="h2" | |
| > | |
| Project contributors | |
| </Typography> | |
| <Typography | |
| id="modal-modal-title" | |
| variant="h6" | |
| sx={{ paddingTop: "10px", fontFamily: "monospace" }} | |
| component="h2" | |
| > | |
| Application & Model: | |
| </Typography> | |
| <Box sx={{ gap: "1px", marginLeft: "10px" }}> | |
| <Typography | |
| id="modal-modal-description" | |
| paragraph | |
| sx={{ | |
| mt: 0, | |
| mb: 0, | |
| fontSize: "18px", | |
| fontFamily: "monospace", | |
| }} | |
| > | |
| - Yann Derré @ UTBM | |
| </Typography> | |
| <Typography | |
| id="modal-modal-description" | |
| paragraph | |
| sx={{ | |
| mt: 0, | |
| mb: 0, | |
| fontSize: "18px", | |
| fontFamily: "monospace", | |
| }} | |
| > | |
| - Anselme Canivet @ UTC | |
| </Typography> | |
| </Box> | |
| <Typography | |
| id="modal-modal-title" | |
| variant="h6" | |
| sx={{ paddingTop: "10px", fontFamily: "monospace" }} | |
| component="h2" | |
| > | |
| Extra Support model: | |
| </Typography> | |
| <Box sx={{ gap: "1px", marginLeft: "10px" }}> | |
| <Link | |
| id="modal-modal-description" | |
| paragraph | |
| sx={{ | |
| mt: 0, | |
| mb: 0, | |
| fontSize: "18px", | |
| fontFamily: "monospace", | |
| cursor:"pointer", | |
| color:"black" | |
| }} | |
| href="https://github.com/crodriguez1a" | |
| > | |
| Inversynth implementation by Carlos Rodriguez | |
| </Link> | |
| <Box> | |
| </Box> | |
| <Link | |
| id="modal-modal-description" | |
| paragraph | |
| sx={{ | |
| mt: 0, | |
| mb: 0, | |
| fontSize: "18px", | |
| fontFamily: "monospace", | |
| cursor:"pointer", | |
| color: "black" | |
| }} | |
| href="https://arxiv.org/pdf/1812.06349.pdf" | |
| > | |
| Inversynth model by Oren Barkan, David Tsiris, Ori Katz, Noam Koenigstein | |
| </Link> | |
| </Box> | |
| <Typography | |
| id="modal-modal-description" | |
| sx={{ mt: 2, fontFamily: "monospace" }} | |
| > | |
| </Typography> | |
| </Box> | |
| </Modal> | |
| </div> | |
| </Toolbar> | |
| </AppBar> | |
| </> | |
| ); | |
| }; | |
| export default MainAppBar; | |