import { mdiServer } from "@mdi/js"; import Icon from "@mdi/react"; import Avatar from "@mui/material/Avatar"; import Box from "@mui/material/Box"; import CssBaseline from "@mui/material/CssBaseline"; import Grid from "@mui/material/Grid"; import Paper from "@mui/material/Paper"; import Typography from "@mui/material/Typography"; import { Link, Outlet } from "react-router-dom"; function Copyright(props: any) { return ( <Typography variant="body2" color="text.secondary" align="center" style={{ marginTop: "20px" }} {...props} > {"Copyright © "} <a color="inherit" href="https://0ph.fr/" target="_blank" rel="noreferrer" style={{ color: "inherit" }} > Pierre HUBERT </a>{" "} {new Date().getFullYear()} {"."} </Typography> ); } export function BaseLoginPage() { return ( <Grid container component="main" sx={{ height: "100vh" }}> <CssBaseline /> <Grid size={{ xs: false, sm: 4, md: 7 }} sx={{ backgroundImage: "url(/login_splash.jpg)", backgroundRepeat: "no-repeat", backgroundColor: (t) => t.palette.mode === "light" ? t.palette.grey[50] : t.palette.grey[900], backgroundSize: "cover", backgroundPosition: "center", }} /> <Grid size={{ xs: 12, sm: 8, md: 5 }} component={Paper} elevation={6} square > <Box sx={{ my: 8, mx: 4, display: "flex", flexDirection: "column", alignItems: "center", }} > <Avatar sx={{ m: 1, bgcolor: "secondary.main" }}> <Icon path={mdiServer} size={1} /> </Avatar> <Link to="/" style={{ color: "inherit", textDecoration: "none" }}> <Typography component="h1" variant="h5"> VirtWeb </Typography> </Link> <Typography component="h1" variant="h6" style={{ margin: "10px 0px 30px 0px" }} > Virtual Machines Management </Typography> {/* inner page */} <Outlet /> <Copyright sx={{ mt: 5 }} /> </Box> </Grid> </Grid> ); }