import React from "react";
import PropTypes from "prop-types";
import {Dialog, DialogTitle, DialogContentText, Button, DialogActions, DialogContent} from '@material-ui/core';

const GeneralConfirmation = (props) => {
    return (
      <div>
      <Dialog open={props.open}
      onClose={props.close}>
        <DialogTitle id="alert-dialog-title">
          {props.title}
        </DialogTitle>
        <DialogContent>
          <DialogContentText id="alert-dialog-description">
            {"Are you sure you want to : " + props.message}
          </DialogContentText>
        </DialogContent>
        <DialogActions>
          <Button onClick={props.close}>Cancel</Button>
          <Button variant="contained" color="secondary" onClick={() => { props.close(); props.actionFunction()}} autoFocus>
            Go
          </Button>
        </DialogActions>
      </Dialog>
      </div>
    )
}

GeneralConfirmation.propTypes={
  open: PropTypes.bool.isRequired, // Boolean that determines if the modal should be open
  close: PropTypes.func.isRequired, // Function that sets the open state to false i.e. () => setOpen(false)
  message: PropTypes.any.isRequired, // What the user will see if being confirmed for the function to run
  actionFunction: PropTypes.func.isRequired, // Function that runs when user clicks Go
  title: PropTypes.any.isRequired, // The title of the modal that is opened
}

export default GeneralConfirmation;