From 5258145ef601d607ef2f2a90e9f04b20a7b2bc8d Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Tue, 22 Sep 2015 13:56:55 -0700 Subject: [PATCH] add validation to all current inputs validation right now is simply validating that the value is indeed a string --- common/app/routes/Jobs/components/NewJob.jsx | 41 +++++++++++++++++--- common/app/routes/Jobs/flux/Actions.js | 8 ++-- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/common/app/routes/Jobs/components/NewJob.jsx b/common/app/routes/Jobs/components/NewJob.jsx index 61bf46530a..b1b1ff30c3 100644 --- a/common/app/routes/Jobs/components/NewJob.jsx +++ b/common/app/routes/Jobs/components/NewJob.jsx @@ -19,7 +19,7 @@ function defaultValue(type) { return defaults[type]; } -function validatePosition(value) { +function validateString(value) { if (!value && typeof value !== 'string') { return false; } @@ -32,12 +32,12 @@ export default contain({ map({ form = {} }) { const { position = defaultValue('string'), - location = defaultValue('string'), + locale = defaultValue('string'), description = defaultValue('string') } = form; return { position, - location, + locale, description }; } @@ -48,14 +48,16 @@ export default contain({ propTypes: { jobActions: PropTypes.object, position: PropTypes.object, - location: PropTypes.object, + locale: PropTypes.object, description: PropTypes.object }, render() { const { jobActions, - position + position, + locale, + description } = this.props; return ( @@ -77,7 +79,7 @@ export default contain({ jobActions.handleForm({ name: 'position', value, - validator: validatePosition + validator: validateString }); }} placeholder='Position' @@ -85,16 +87,43 @@ export default contain({ value={ position.value } wrapperClassName='col-xs-10' /> { + jobActions.handleForm({ + name: 'locale', + value, + validator: validateString + }); + }} placeholder='Location' type='text' + value={ locale.value } wrapperClassName='col-xs-10' /> { + jobActions.handleForm({ + name: 'description', + value, + validator: validateString + }); + }} placeholder='Description' + rows='10' type='textarea' + value={ description.value } wrapperClassName='col-xs-10' /> diff --git a/common/app/routes/Jobs/flux/Actions.js b/common/app/routes/Jobs/flux/Actions.js index 664d04caf3..ccaab9c755 100644 --- a/common/app/routes/Jobs/flux/Actions.js +++ b/common/app/routes/Jobs/flux/Actions.js @@ -47,11 +47,11 @@ export default Actions({ if (!validator(value)) { return { transform(oldState) { - const { oldForm } = oldState; + const { form } = oldState; const newState = assign({}, oldState); newState.form = assign( {}, - oldForm, + form, { [name]: { value, valid: false, pristine: false }} ); return newState; @@ -60,11 +60,11 @@ export default Actions({ } return { transform(oldState) { - const { oldForm } = oldState; + const { form } = oldState; const newState = assign({}, oldState); newState.form = assign( {}, - oldForm, + form, { [name]: { value, valid: true, pristine: false }} ); return newState;