6e87416781eb01a02866bc9f2bcea65dc0c59a68
[arvados-workbench2.git] / src / components / confirmation-dialog / confirmation-dialog.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from "react";
6 import { defaultTo, property } from 'lodash';
7 import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, DialogContentText, CircularProgress } from "@material-ui/core";
8 import { WithDialogProps } from "../../store/dialog/with-dialog";
9 import { TextField } from "../text-field/text-field";
10
11 export interface ConfirmationDialogDataProps {
12     title: string;
13     text: string;
14     cancelButtonLabel?: string;
15     confirmButtonLabel?: string;
16 }
17
18 export interface ConfirmationDialogProps {
19     onConfirm: () => void;
20 }
21
22 export const ConfirmationDialog = (props: ConfirmationDialogProps & WithDialogProps<ConfirmationDialogDataProps>) =>
23     <Dialog open={props.open}>
24         <DialogTitle>{props.data.title}</DialogTitle>
25         <DialogContent>
26             <DialogContentText>
27                 {props.data.text}
28             </DialogContentText>
29         </DialogContent>
30         <DialogActions>
31             <Button
32                 variant='flat'
33                 color='primary'
34                 onClick={props.closeDialog}>
35                 {props.data.cancelButtonLabel || 'Cancel'}
36             </Button>
37             <Button
38                 variant='contained'
39                 color='primary'
40                 type='submit'
41                 onClick={props.onConfirm}>
42                 {props.data.confirmButtonLabel || 'Ok'}
43             </Button>
44         </DialogActions>
45     </Dialog>;