46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import React, {useContext} from "react";
 | |
| import {Dialog as MuiDialog,  DialogActions, DialogContent, DialogContentText, DialogTitle} from "@mui/material";
 | |
| import {Button} from "@material-ui/core";
 | |
| import {LocaleContext} from "../locale";
 | |
| import "./dialog.css";
 | |
| 
 | |
| export default function Dialog(props) {
 | |
| 
 | |
|     const show = props.show;
 | |
|     const onClose = props.onClose || function() { };
 | |
|     const onOption = props.onOption || function() { };
 | |
|     const options = props.options || ["Close"];
 | |
|     const type = props.type || "default";
 | |
|     const {translate: L} = useContext(LocaleContext);
 | |
| 
 | |
| 
 | |
|     let buttons = [];
 | |
|     for (let name of options) {
 | |
|         let type = "default";
 | |
|         if (name === "Yes") type = "warning";
 | |
|         else if(name === "No") type = "danger";
 | |
| 
 | |
|         buttons.push(
 | |
|             <Button variant={"outlined"} size={"small"} type="button" key={"button-" + name}
 | |
|                     data-dismiss={"modal"} onClick={() => { onClose(); onOption(name); }}>
 | |
|                 {name}
 | |
|             </Button>
 | |
|         )
 | |
|     }
 | |
| 
 | |
|     return <MuiDialog
 | |
|         open={show}
 | |
|         onClose={onClose}
 | |
|         aria-labelledby="alert-dialog-title"
 | |
|         aria-describedby="alert-dialog-description">
 | |
|         <DialogTitle>{ props.title }</DialogTitle>
 | |
|         <DialogContent>
 | |
|             <DialogContentText>
 | |
|                 { props.message }
 | |
|             </DialogContentText>
 | |
|         </DialogContent>
 | |
|         <DialogActions>
 | |
|             {buttons}
 | |
|         </DialogActions>
 | |
|     </MuiDialog>
 | |
| } |