From: Pawel Kowalczyk Date: Tue, 10 Jul 2018 10:40:40 +0000 (+0200) Subject: merge conficts X-Git-Tag: 1.2.0~52^2~5 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/ba1958858cbb152de49946cf7c1c8ce923eb628a merge conficts Feature #13694 Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk --- ba1958858cbb152de49946cf7c1c8ce923eb628a diff --cc src/views-components/create-project-dialog/create-project-dialog.tsx index 00000000,d97eebcd..c7a7852d mode 000000,100644..100644 --- a/src/views-components/create-project-dialog/create-project-dialog.tsx +++ b/src/views-components/create-project-dialog/create-project-dialog.tsx @@@ -1,0 -1,21 +1,21 @@@ + // Copyright (C) The Arvados Authors. All rights reserved. + // + // SPDX-License-Identifier: AGPL-3.0 + + import { connect } from "react-redux"; + import { Dispatch } from "../../../node_modules/redux"; + import { RootState } from "../../store/store"; -import DialogProjectCreate from "../../components/dialog-create/dialog-project-create"; ++import DialogProjectCreate from "../dialog-create/dialog-project-create"; + import actions from "../../store/project/project-action"; + + const mapStateToProps = (state: RootState) => ({ + open: state.projects.creator.opened + }); + + const mapDispatchToProps = (dispatch: Dispatch) => ({ + handleClose: () => { + dispatch(actions.CLOSE_PROJECT_CREATOR()); + } + }); + + export default connect(mapStateToProps, mapDispatchToProps)(DialogProjectCreate); diff --cc src/views-components/dialog-create/dialog-project-create.tsx index 4cdf7468,00000000..475f8371 mode 100644,000000..100644 --- a/src/views-components/dialog-create/dialog-project-create.tsx +++ b/src/views-components/dialog-create/dialog-project-create.tsx @@@ -1,135 -1,0 +1,132 @@@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// 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; +} + +interface DialogState { + name: string; + description: string; + isNameValid: boolean; + isDescriptionValid: boolean; +} + +class DialogProjectCreate extends React.Component> { + state: DialogState = { + name: '', + description: '', - isNameValid: true, ++ 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 />} /> + - ++ + + + +
+
+ ); + } + + handleProjectName(e: any) { + this.setState({ + name: e.target.value, + }); + } + + handleDescriptionValue(e: any) { + 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" | "dialogActions"; ++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" + }, - dialogActions: { - marginBottom: "5px" - }, + textField: { + marginTop: "32px", + }, + dialog: { + minWidth: "600px", + minHeight: "320px" + } +}); + +export default withStyles(styles)(DialogProjectCreate);