import React from 'react';
import Dialog from '@material-ui/core/Dialog';
import MuiDialogActions from '@material-ui/core/DialogActions';
import MuiDialogContent from '@material-ui/core/DialogContent';
import DialogContentText from '@material-ui/core/DialogContentText';
import Button from '@material-ui/core/Button';
import { withStyles } from '@material-ui/core/styles';
import MuiDialogTitle from '@material-ui/core/DialogTitle';
import IconButton from '@material-ui/core/IconButton';
import CloseIcon from '@material-ui/icons/Close';
import Typography from '@material-ui/core/Typography';
const DialogTitle = withStyles(theme => ({
root: {
borderBottom: `1px solid ${theme.palette.divider}`,
margin: 0,
padding: theme.spacing.unit * 2
},
closeButton: {
position: 'absolute',
right: theme.spacing.unit,
top: theme.spacing.unit,
color: theme.palette.grey[500],
},
}))(props => {
const { children, classes, onClose } = props;
return (
<MuiDialogTitle disableTypography className={classes.root}>
<Typography variant='h6'>{children}</Typography>
<IconButton aria-label='Close' className={classes.closeButton} onClick={onClose}>
<CloseIcon />
</IconButton>
</MuiDialogTitle>
);
});
const DialogContent = withStyles(theme => ({
root: {
margin: 0,
padding: theme.spacing.unit * 2
},
}))(MuiDialogContent);
const DialogActions = withStyles(theme => ({
root: {
borderTop: `1px solid ${theme.palette.divider}`,
margin: 0,
padding: theme.spacing.unit,
},
}))(MuiDialogActions);
const DialogModal = props => {
const { isOpen, handleCloseEvent, modalTitle, modalContent, handleCancelEvent, modalCancelButtonText, handleOkEvent, modalOkButtonText, fullWidth, maxWidth, modalContentAlignment } = props;
let contentAlign = 'left';
if (modalContentAlignment) {
contentAlign = modalContentAlignment;
}
return (
<Dialog
data-testid="Dialog-Box"
open={isOpen}
onClose={handleCloseEvent}
aria-labelledby='alert-dialog-title'
aria-describedby='alert-dialog-description'
fullWidth={fullWidth}
maxWidth={maxWidth}
>
<DialogTitle id='alert-dialog-title' onClose={handleCloseEvent}>{modalTitle}</DialogTitle>
<DialogContent style={{ textAlign: contentAlign }}>
<DialogContentText id='alert-dialog-description'>
{modalContent}
</DialogContentText>
</DialogContent>
{
(modalCancelButtonText && modalOkButtonText) && (
<DialogActions>
{
modalCancelButtonText && (
<Button onClick={handleCancelEvent} color='primary'>
{modalCancelButtonText}
</Button>
)
}
{
modalOkButtonText && (
<Button onClick={handleOkEvent} color='primary' autoFocus>
{modalOkButtonText}
</Button>
)
}
</DialogActions>
)
}
</Dialog>
);
};
export default DialogModal; |