import React from "react"; import { connect, ConnectedProps } from "react-redux"; import Button from "@material-ui/core/Button"; import Dialog from "@material-ui/core/Dialog"; import DialogActions from "@material-ui/core/DialogActions"; import DialogContent from "@material-ui/core/DialogContent"; import DialogContentText from "@material-ui/core/DialogContentText"; import DialogTitle from "@material-ui/core/DialogTitle"; import { Queue } from "../api"; import { AppState } from "../store"; import { deleteQueueAsync } from "../actions/queuesActions"; interface Props { queue: Queue | null; // queue to delete onClose: () => void; } function mapStateToProps(state: AppState, ownProps: Props) { let requestPending = false; if (ownProps.queue !== null) { const q = state.queues.data.find((q) => q.name === ownProps.queue?.queue); if (q !== undefined) { requestPending = q.requestPending; } } return { requestPending, }; } const connector = connect(mapStateToProps, { deleteQueueAsync }); type ReduxProps = ConnectedProps; function DeleteQueueConfirmationDialog(props: Props & ReduxProps) { const handleDeleteClick = () => { if (!props.queue) { return; } props.deleteQueueAsync(props.queue.queue); props.onClose(); }; return ( {props.queue !== null && (props.queue.size > 0 ? ( <> Queue is not empty You are trying to delete a non-emtpy queue "{props.queue.queue} ". Please empty the queue first before deleting. ) : ( <> Are you sure you want to delete "{props.queue.queue}"? You can't undo this action. ))} ); } export default connector(DeleteQueueConfirmationDialog);