// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import React from 'react'; import { InjectedFormProps } from 'redux-form'; import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material/'; import { CustomStyleRulesCallback } from 'common/custom-theme'; import { Button, CircularProgress } from '@mui/material'; import { WithStyles } from '@mui/styles'; import withStyles from '@mui/styles/withStyles'; import { WithDialogProps } from 'store/dialog/with-dialog'; type CssRules = "button" | "lastButton" | "form" | "formContainer" | "dialogTitle" | "progressIndicator" | "dialogActions"; const styles: CustomStyleRulesCallback = theme => ({ button: { marginLeft: theme.spacing(1), }, lastButton: { marginLeft: theme.spacing(1), marginRight: "0", }, form: { display: 'flex', overflowY: 'auto', flexDirection: 'column', flex: '0 1 auto', }, formContainer: { display: "flex", flexDirection: "column", paddingBottom: "0", }, dialogTitle: { paddingTop: theme.spacing(1), paddingBottom: theme.spacing(1), }, progressIndicator: { position: "absolute", minWidth: "20px", }, dialogActions: { marginBottom: theme.spacing(1), marginRight: theme.spacing(3), } }); interface DialogProjectDataProps { cancelLabel?: string; dialogTitle: string; formFields: React.ComponentType & WithDialogProps>; submitLabel?: string; cancelCallback?: Function; enableWhenPristine?: boolean; doNotDisableCancel?: boolean; } type DialogProjectProps = DialogProjectDataProps & WithDialogProps<{}> & InjectedFormProps & WithStyles; export const FormDialog = withStyles(styles)((props: DialogProjectProps) => { const handleClose = (ev, reason) => { if (reason !== 'backdropClick') { props.closeDialog(); } } return
{props.dialogTitle}
});