X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/9320734bb358e7148918da13e81ebba59ecf16e8..25216cc7acedc987c26a159f0b640210c0ef101e:/src/views-components/dialog-create/dialog-project-create.tsx diff --git a/src/views-components/dialog-create/dialog-project-create.tsx b/src/views-components/dialog-create/dialog-project-create.tsx index 89deea6f..f0234f6d 100644 --- a/src/views-components/dialog-create/dialog-project-create.tsx +++ b/src/views-components/dialog-create/dialog-project-create.tsx @@ -3,138 +3,29 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import TextField from '@material-ui/core/TextField'; -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogTitle from '@material-ui/core/DialogTitle'; -import { Button, StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core'; - -import Validator from '../../utils/dialog-validator'; - -interface ProjectCreateProps { - open: boolean; - handleClose: () => void; - onSubmit: (data: { name: string, description: string }) => void; -} - -interface DialogState { - name: string; - description: string; - isNameValid: boolean; - isDescriptionValid: boolean; -} - -class DialogProjectCreate extends React.Component> { - state: DialogState = { - name: '', - description: '', - isNameValid: false, - isDescriptionValid: true - }; - - render() { - const { name, description } = this.state; - const { classes, open, handleClose } = this.props; - - return ( - -
- Create a project - - this.isNameValid(e)} - isRequired={true} - render={hasError => - this.handleProjectName(e)} - label="Project name" - error={hasError} - fullWidth />} /> - this.isDescriptionValid(e)} - isRequired={false} - render={hasError => - this.handleDescriptionValue(e)} - label="Description - optional" - error={hasError} - fullWidth />} /> - - - - - -
-
- ); - } - - handleSubmit = () => { - this.props.onSubmit({ - name: this.state.name, - description: this.state.description - }); - } - - handleProjectName(e: React.ChangeEvent) { - this.setState({ - name: e.target.value, - }); - } - - handleDescriptionValue(e: React.ChangeEvent) { - this.setState({ - description: e.target.value, - }); - } - - isNameValid(value: boolean | string) { - this.setState({ - isNameValid: value, - }); - } - - isDescriptionValid(value: boolean | string) { - this.setState({ - isDescriptionValid: value, - }); - } -} - -type CssRules = "button" | "lastButton" | "dialogContent" | "textField" | "dialog" | "dialogTitle"; - -const styles: StyleRulesCallback = theme => ({ - button: { - marginLeft: theme.spacing.unit - }, - lastButton: { - marginLeft: theme.spacing.unit, - marginRight: "20px", - }, - dialogContent: { - marginTop: "20px", - }, - dialogTitle: { - paddingBottom: "0" - }, - textField: { - marginTop: "32px", - }, - dialog: { - minWidth: "600px", - minHeight: "320px" - } -}); - -export default withStyles(styles)(DialogProjectCreate); \ No newline at end of file +import { InjectedFormProps } from 'redux-form'; +import { WithDialogProps } from 'store/dialog/with-dialog'; +import { ProjectCreateFormDialogData } from 'store/projects/project-create-actions'; +import { FormDialog } from 'components/form-dialog/form-dialog'; +import { ProjectNameField, ProjectDescriptionField } from 'views-components/form-fields/project-form-fields'; +import { CreateProjectPropertiesForm } from 'views-components/project-properties/create-project-properties-form'; +import { CreateProjectPropertiesList } from 'views-components/project-properties/create-project-properties-list'; +import { ResourceParentField } from '../form-fields/resource-form-fields'; + +type DialogProjectProps = WithDialogProps<{}> & InjectedFormProps; + +export const DialogProjectCreate = (props: DialogProjectProps) => + ; + +const ProjectAddFields = () => + + + + + +;