import * as React from 'react'; import { Transition } from 'react-transition-group'; import Button from '@mui/joy/Button'; import Modal from '@mui/joy/Modal'; import ModalDialog from '@mui/joy/ModalDialog'; import DialogTitle from '@mui/joy/DialogTitle'; import DialogContent from '@mui/joy/DialogContent'; export default function FadeModalDialog() { const [open, setOpen] = React.useState(false); const nodeRef = React.useRef(null); return ( {(state: string) => ( setOpen(false)} slotProps={{ backdrop: { sx: { opacity: 0, backdropFilter: 'none', transition: `opacity 400ms, backdrop-filter 400ms`, ...{ entering: { opacity: 1, backdropFilter: 'blur(8px)' }, entered: { opacity: 1, backdropFilter: 'blur(8px)' }, }[state], }, }, }} sx={[ state === 'exited' ? { visibility: 'hidden' } : { visibility: 'visible' }, ]} > Transition modal Using `react-transition-group` to create a fade animation. )} ); }