X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/c4c906cb232d8974858e4da2393fb7a83a24fbd0..6e4b23e9a99ab64e25c60a128e6beb4fa8636374:/src/components/form-dialog/form-dialog.tsx diff --git a/src/components/form-dialog/form-dialog.tsx b/src/components/form-dialog/form-dialog.tsx index 29c0b163..0fc799de 100644 --- a/src/components/form-dialog/form-dialog.tsx +++ b/src/components/form-dialog/form-dialog.tsx @@ -2,13 +2,13 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { InjectedFormProps } from 'redux-form'; import { Dialog, DialogActions, DialogContent, DialogTitle } from '@material-ui/core/'; import { Button, StyleRulesCallback, WithStyles, withStyles, CircularProgress } from '@material-ui/core'; -import { WithDialogProps } from '~/store/dialog/with-dialog'; +import { WithDialogProps } from 'store/dialog/with-dialog'; -type CssRules = "button" | "lastButton" | "formContainer" | "textField" | "dialog" | "dialogTitle" | "progressIndicator" | "dialogActions"; +type CssRules = "button" | "lastButton" | "formContainer" | "dialogTitle" | "progressIndicator" | "dialogActions"; const styles: StyleRulesCallback = theme => ({ button: { @@ -16,74 +16,83 @@ const styles: StyleRulesCallback = theme => ({ }, lastButton: { marginLeft: theme.spacing.unit, - marginRight: "20px", + marginRight: "0", }, formContainer: { display: "flex", flexDirection: "column", - marginTop: "20px", + paddingBottom: "0", }, dialogTitle: { - paddingBottom: "0" - }, - textField: { - marginTop: "32px", - }, - dialog: { - minWidth: "600px", - minHeight: "320px" + paddingTop: theme.spacing.unit, + paddingBottom: theme.spacing.unit, }, progressIndicator: { position: "absolute", minWidth: "20px", }, dialogActions: { - marginBottom: "24px" + marginBottom: theme.spacing.unit, + marginRight: theme.spacing.unit * 3, } }); -interface DialogProjectProps { +interface DialogProjectDataProps { cancelLabel?: string; dialogTitle: string; - formFields: React.ComponentType>; + formFields: React.ComponentType & WithDialogProps>; submitLabel?: string; + cancelCallback?: Function; + enableWhenPristine?: boolean; + doNotDisableCancel?: boolean; } -export const FormDialog = withStyles(styles)((props: DialogProjectProps & WithDialogProps<{}> & InjectedFormProps & WithStyles) => +type DialogProjectProps = DialogProjectDataProps & WithDialogProps<{}> & InjectedFormProps & WithStyles; + +export const FormDialog = withStyles(styles)((props: DialogProjectProps) => -
-
- - {props.dialogTitle} - - - - - - - - -
-
+ disableBackdropClick + disableEscapeKeyDown={props.submitting} + fullWidth + maxWidth='md'> +
+ + {props.dialogTitle} + + + + + + + + +
); - -