modal.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React from 'react';
  2. import { makeStyles } from '@material-ui/core/styles';
  3. import Modal from '@material-ui/core/Modal';
  4. import Backdrop from '@material-ui/core/Backdrop';
  5. import Fade from '@material-ui/core/Fade';
  6. const useStyles = makeStyles((theme) => ({
  7. modal: {
  8. display: 'flex',
  9. alignItems: 'center',
  10. justifyContent: 'center',
  11. },
  12. paper: {
  13. backgroundColor: theme.palette.background.paper,
  14. border: '2px solid #000',
  15. boxShadow: theme.shadows[5],
  16. padding: theme.spacing(2, 4, 3),
  17. },
  18. }));
  19. export default function TransitionsModal() {
  20. const classes = useStyles();
  21. const [open, setOpen] = React.useState(false);
  22. const handleOpen = () => {
  23. setOpen(true);
  24. };
  25. const handleClose = () => {
  26. setOpen(false);
  27. };
  28. return (
  29. <div>
  30. <button type="button" onClick={handleOpen}>
  31. react-transition-group
  32. </button>
  33. <Modal
  34. aria-labelledby="transition-modal-title"
  35. aria-describedby="transition-modal-description"
  36. className={classes.modal}
  37. open={open}
  38. onClose={handleClose}
  39. closeAfterTransition
  40. BackdropComponent={Backdrop}
  41. BackdropProps={{
  42. timeout: 500,
  43. }}
  44. >
  45. <Fade in={open}>
  46. <div className={classes.paper}>
  47. <h2 id="transition-modal-title">Transition modal</h2>
  48. <p id="transition-modal-description">react-transition-group animates me.</p>
  49. </div>
  50. </Fade>
  51. </Modal>
  52. </div>
  53. );
  54. }