// Copyright (C) The Arvados Authors. All rights reserved.
//
// SPDX-License-Identifier: AGPL-3.0

import React from "react";
import { Dialog, DialogTitle, DialogContent, DialogActions, Button, DialogContentText } from "@material-ui/core";
import { WithDialogProps } from "store/dialog/with-dialog";
import { WarningIcon } from 'components/icon/icon';

export interface ConfirmationDialogDataProps {
    title: string;
    text: string;
    info?: string;
    cancelButtonLabel?: string;
    confirmButtonLabel?: string;
}

export interface ConfirmationDialogProps {
    onConfirm: () => void;
}

export const ConfirmationDialog = (props: ConfirmationDialogProps & WithDialogProps<ConfirmationDialogDataProps>) =>
    <Dialog open={props.open}>
        <div data-cy='confirmation-dialog'>
            <DialogTitle>{props.data.title}</DialogTitle>
            <DialogContent style={{ display: 'flex', alignItems: 'center' }}>
                <WarningIcon />
                <DialogContentText style={{ paddingLeft: '8px' }}>
                    <span style={{display: 'block'}}>{props.data.text}</span>
                    <span style={{display: 'block'}}>{props.data.info}</span>
                </DialogContentText>
            </DialogContent>
            <DialogActions style={{ margin: '0px 24px 24px' }}>
                <Button
                    data-cy='confirmation-dialog-cancel-btn'
                    variant='text'
                    color='primary'
                    onClick={props.closeDialog}>
                    {props.data.cancelButtonLabel || 'Cancel'}
                </Button>
                <Button
                    data-cy='confirmation-dialog-ok-btn'
                    variant='contained'
                    color='primary'
                    type='submit'
                    onClick={props.onConfirm}>
                    {props.data.confirmButtonLabel || 'Ok'}
                </Button>
            </DialogActions>
        </div>
    </Dialog>;