X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/1c7242e61e9d71c7a37483ec0583dd0256f8ee7e..6e830f14ac2732c6d8661275fff691dd8a6179fa:/src/views-components/dialog-create/dialog-collection-create.tsx diff --git a/src/views-components/dialog-create/dialog-collection-create.tsx b/src/views-components/dialog-create/dialog-collection-create.tsx index d0f793bf..a0cbcba5 100644 --- a/src/views-components/dialog-create/dialog-collection-create.tsx +++ b/src/views-components/dialog-create/dialog-collection-create.tsx @@ -13,8 +13,12 @@ import DialogTitle from '@material-ui/core/DialogTitle'; import { Button, StyleRulesCallback, WithStyles, withStyles, CircularProgress } from '@material-ui/core'; import { COLLECTION_NAME_VALIDATION, COLLECTION_DESCRIPTION_VALIDATION } from '../../validators/create-project/create-project-validator'; +import { FileUpload } from "../../components/file-upload/file-upload"; +import { connect, DispatchProp } from "react-redux"; +import { RootState } from "../../store/store"; +import { collectionUploaderActions } from "../../store/collections/uploader/collection-uploader-actions"; -type CssRules = "button" | "lastButton" | "formContainer" | "textField" | "dialog" | "dialogTitle" | "createProgress" | "dialogActions"; +type CssRules = "button" | "lastButton" | "formContainer" | "textField" | "createProgress" | "dialogActions"; const styles: StyleRulesCallback = theme => ({ button: { @@ -27,17 +31,9 @@ const styles: StyleRulesCallback = theme => ({ formContainer: { display: "flex", flexDirection: "column", - marginTop: "20px", - }, - dialogTitle: { - paddingBottom: "0" }, textField: { - marginTop: "32px", - }, - dialog: { - minWidth: "600px", - minHeight: "320px" + marginBottom: theme.spacing.unit * 3 }, createProgress: { position: "absolute", @@ -45,17 +41,19 @@ const styles: StyleRulesCallback = theme => ({ right: "110px" }, dialogActions: { - marginBottom: "24px" + marginBottom: theme.spacing.unit * 3 } }); + interface DialogCollectionCreateProps { open: boolean; handleClose: () => void; - onSubmit: (data: { name: string, description: string }) => void; + onSubmit: (data: { name: string, description: string, files: File[] }) => void; handleSubmit: any; submitting: boolean; invalid: boolean; pristine: boolean; + files: File[]; } interface TextFieldProps { @@ -67,9 +65,12 @@ interface TextFieldProps { } export const DialogCollectionCreate = compose( + connect((state: RootState) => ({ + files: state.collections.uploader.files + })), reduxForm({ form: 'collectionCreateDialog' }), withStyles(styles))( - class DialogCollectionCreate extends React.Component> { + class DialogCollectionCreate extends React.Component> { render() { const { classes, open, handleClose, handleSubmit, onSubmit, submitting, invalid, pristine } = this.props; @@ -77,39 +78,44 @@ export const DialogCollectionCreate = compose( -
-
onSubmit(data))}> - Create a collection - - - - - - - - {submitting && } - -
-
+
onSubmit({ ...data, files: this.props.files }))}> + Create a collection + + + + this.props.dispatch(collectionUploaderActions.SET_UPLOAD_FILES(files))}/> + + + + + {submitting && } + +
); }