add close modal button (#546)

This commit is contained in:
bezrodnov 2023-05-29 17:54:14 +02:00 committed by GitHub
parent e51527aa86
commit ea8f5cede7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,11 +1,13 @@
import React from "react";
import { Theme } from "@mui/material"; import { Theme } from "@mui/material";
import Box from "@mui/material/Box"; import Box from "@mui/material/Box";
import IconButton from "@mui/material/IconButton";
import Fade from "@mui/material/Fade"; import Fade from "@mui/material/Fade";
import M from "@mui/material/Modal"; import M from "@mui/material/Modal";
import createStyles from "@mui/styles/createStyles"; import createStyles from "@mui/styles/createStyles";
import makeStyles from "@mui/styles/makeStyles"; import makeStyles from "@mui/styles/makeStyles";
import { SxProps } from "@mui/system"; import { SxProps } from "@mui/system";
import React from "react"; import CloseIcon from "@mui/icons-material/Close";
const useStyles = makeStyles((theme: Theme) => const useStyles = makeStyles((theme: Theme) =>
createStyles({ createStyles({
@ -15,6 +17,7 @@ const useStyles = makeStyles((theme: Theme) =>
justifyContent: "center", justifyContent: "center",
}, },
paper: { paper: {
position: "relative",
backgroundColor: theme.palette.background.default, backgroundColor: theme.palette.background.default,
border: "2px solid " + theme.palette.primary.main, border: "2px solid " + theme.palette.primary.main,
boxShadow: `0px 3px 5px -1px ${theme.palette.primary.dark},0px 5px 8px 0px ${theme.palette.primary.dark},0px 1px 14px 0px ${theme.palette.primary.dark}`, boxShadow: `0px 3px 5px -1px ${theme.palette.primary.dark},0px 5px 8px 0px ${theme.palette.primary.dark},0px 1px 14px 0px ${theme.palette.primary.dark}`,
@ -28,6 +31,13 @@ const useStyles = makeStyles((theme: Theme) =>
}, },
scrollbarWidth: "none", // firefox scrollbarWidth: "none", // firefox
}, },
closeButton: {
position: "absolute",
right: 3,
top: 3,
width: 20,
height: 20,
},
}), }),
); );
@ -54,6 +64,9 @@ export const Modal = (props: IProps): React.ReactElement => {
> >
<Fade in={props.open}> <Fade in={props.open}>
<div className={classes.paper}> <div className={classes.paper}>
<IconButton className={classes.closeButton} onClick={props.onClose}>
<CloseIcon />
</IconButton>
<Box sx={{ m: 2 }}>{props.children}</Box> <Box sx={{ m: 2 }}>{props.children}</Box>
</div> </div>
</Fade> </Fade>