From ff4c9c7f527e911c37cf02a5d048f5e6652ed253 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 26 Feb 2019 13:31:43 +0100 Subject: improve workspace form setup --- .../workspaces/components/CreateWorkspaceForm.js | 29 ++++++------- .../workspaces/components/EditWorkspaceForm.js | 50 ++++++++++++++-------- .../workspaces/containers/EditWorkspaceScreen.js | 2 +- 3 files changed, 46 insertions(+), 35 deletions(-) diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js index d440b9bae..83f6e07f7 100644 --- a/src/features/workspaces/components/CreateWorkspaceForm.js +++ b/src/features/workspaces/components/CreateWorkspaceForm.js @@ -4,8 +4,8 @@ import { observer } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import { Input, Button } from '@meetfranz/forms'; import injectSheet from 'react-jss'; - import Form from '../../../lib/Form'; +import { required } from '../../../helpers/validation-helpers'; const messages = defineMessages({ submitButton: { @@ -28,11 +28,11 @@ const styles = () => ({ }, submitButton: { height: 'inherit', - marginTop: '17px', + marginTop: '3px', }, }); -@observer @injectSheet(styles) +@injectSheet(styles) @observer class CreateWorkspaceForm extends Component { static contextTypes = { intl: intlShape, @@ -43,46 +43,45 @@ class CreateWorkspaceForm extends Component { onSubmit: PropTypes.func.isRequired, }; - prepareForm() { + form = (() => { const { intl } = this.context; - const config = { + return new Form({ fields: { name: { label: intl.formatMessage(messages.name), placeholder: intl.formatMessage(messages.name), value: '', + validators: [required], }, }, - }; - return new Form(config); - } + }); + })(); - submitForm(form) { + submitForm() { + const { form } = this; form.submit({ onSuccess: async (f) => { const { onSubmit } = this.props; - const values = f.values(); - onSubmit(values); + onSubmit(f.values()); }, - onError: async () => {}, }); } render() { const { intl } = this.context; const { classes } = this.props; - const form = this.prepareForm(); - + const { form } = this; return (
diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index 1ddf8dfcb..17b723303 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -3,8 +3,8 @@ import { inject, observer } from 'mobx-react'; import PropTypes from 'prop-types'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; -import { state } from '../state'; import EditWorkspaceForm from '../components/EditWorkspaceForm'; +import { state } from '../state'; @inject('stores', 'actions') @observer class EditWorkspaceScreen extends Component { -- cgit v1.2.3-70-g09d2