|
|
|
import styles from './styles.module.css'
|
|
|
|
import Button from '@mui/material/Button';
|
|
|
|
import Dialog from '@mui/material/Dialog';
|
|
|
|
import DialogActions from '@mui/material/DialogActions';
|
|
|
|
import DialogContent from '@mui/material/DialogContent';
|
|
|
|
import DialogTitle from '@mui/material/DialogTitle';
|
|
|
|
import { v4 } from "uuid"
|
|
|
|
|
|
|
|
interface ConfirmDialogInterface {
|
|
|
|
open: boolean
|
|
|
|
title: string
|
|
|
|
closeCallback?: any
|
|
|
|
modifyCallback?: any
|
|
|
|
agreeCallback?: any
|
|
|
|
children: any
|
|
|
|
}
|
|
|
|
|
|
|
|
export default function ConfirmDialog({open, title, agreeCallback, modifyCallback, closeCallback, children}: ConfirmDialogInterface) {
|
|
|
|
let dialogId = v4()
|
|
|
|
return (
|
|
|
|
<Dialog
|
|
|
|
open={open}
|
|
|
|
onClose={closeCallback}
|
|
|
|
aria-labelledby="alert-dialog-title"
|
|
|
|
aria-describedby="alert-dialog-description"
|
|
|
|
>
|
|
|
|
<DialogTitle>
|
|
|
|
{title}
|
|
|
|
</DialogTitle>
|
|
|
|
<DialogContent>
|
|
|
|
{children}
|
|
|
|
</DialogContent>
|
|
|
|
<DialogActions>
|
|
|
|
{agreeCallback && <Button onClick={() => agreeCallback(dialogId)} autoFocus>
|
|
|
|
Agree
|
|
|
|
</Button>}
|
|
|
|
{modifyCallback && <Button onClick={modifyCallback}>Modify</Button>}
|
|
|
|
{closeCallback && <Button onClick={closeCallback}>Disagree</Button>}
|
|
|
|
</DialogActions>
|
|
|
|
</Dialog>
|
|
|
|
);
|
|
|
|
}
|