import React, { useState, useCallback } from 'react'; import { useHistory } from 'react-router-dom'; import { AppBar, Dialog, Toolbar, Typography, IconButton, Divider, Slide, useMediaQuery, useTheme } from '@material-ui/core'; import { makeStyles } from '@material-ui/core/styles'; import { TransitionProps } from '@material-ui/core/transitions'; import CloseIcon from '@material-ui/icons/Close'; interface PropTypes { title: string; rightIcon?: JSX.Element; } const useStyles = makeStyles(theme => ({ root: { backgroundColor: theme.palette.background.default }, content: { padding: theme.spacing(3, 0, 0, 0) }, toolbar: { display: 'flex', justifyContent: 'space-between' } })); const Transition = React.forwardRef(( props: TransitionProps & { children?: React.ReactElement }, ref: React.Ref ) => ); const ModalScreen: React.FC = ({ title, rightIcon, children }) => { const [isOpen, setIsOpen] = useState(true); const classes = useStyles(); const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down('sm')); const history = useHistory(); const handleClose = useCallback(() => setIsOpen(false), [setIsOpen]); const onExited = useCallback(() => history.goBack(), [history]); return ( { title } { rightIcon || ( )}
{ children }
); }; export default ModalScreen;