From 3c22a2e8afb45956654746955ea6c203ac5c4ca0 Mon Sep 17 00:00:00 2001 From: Ivan Diaz Date: Sun, 22 May 2016 15:36:24 -0300 Subject: [PATCH] Revert "[Ivan Diaz] - OS-#10 - Add validations [skip ci]" This reverts commit 8d7d0a93bfbc228b02a2df1d6e12dcc62867d4d5. --- .../main-home/main-home-page-login-widget.js | 4 +- client/src/core-components/form.js | 73 +++++-------------- client/src/core-components/input.js | 10 +-- client/src/data/i18n-data.js | 18 +++-- client/src/data/i18n-keys.js | 5 ++ client/src/data/languages/en.js | 7 -- client/src/data/languages/es.js | 7 -- .../lib-app/validations/email-validator.js | 11 --- .../validations/validations-factory.js | 16 ---- client/src/lib-app/validations/validator.js | 13 ---- 10 files changed, 42 insertions(+), 122 deletions(-) create mode 100644 client/src/data/i18n-keys.js delete mode 100644 client/src/data/languages/en.js delete mode 100644 client/src/data/languages/es.js delete mode 100644 client/src/lib-app/validations/email-validator.js delete mode 100644 client/src/lib-app/validations/validations-factory.js delete mode 100644 client/src/lib-app/validations/validator.js diff --git a/client/src/app/main/main-home/main-home-page-login-widget.js b/client/src/app/main/main-home/main-home-page-login-widget.js index e9315f4a..2f24cd34 100644 --- a/client/src/app/main/main-home/main-home-page-login-widget.js +++ b/client/src/app/main/main-home/main-home-page-login-widget.js @@ -33,7 +33,7 @@ let MainHomePageLoginWidget = React.createClass({
- +
@@ -53,7 +53,7 @@ let MainHomePageLoginWidget = React.createClass({
- +
diff --git a/client/src/core-components/form.js b/client/src/core-components/form.js index c1171073..a407602e 100644 --- a/client/src/core-components/form.js +++ b/client/src/core-components/form.js @@ -1,40 +1,35 @@ -const React = require('react'); -const _ = require('lodash'); +import React from 'react'; +import _ from 'lodash'; -const {reactDFS, renderChildrenWithProps} = require('lib-core/react-dfs'); -const ValidationFactory = require('lib-app/validations/validations-factory'); +import {reactDFS, renderChildrenWithProps} from 'lib-core/react-dfs'; -const Input = require('core-components/input'); -const Checkbox = require('core-components/checkbox'); +import Input from 'core-components/input'; +import Checkbox from 'core-components/checkbox'; -const Form = React.createClass({ +let Form = React.createClass({ + + validations: {}, getInitialState() { return { - form: {}, - validations: {}, - errors: {} + form: {} } }, componentDidMount() { let formState = {}; - let validations = {}; - reactDFS(this.props.children, function (child) { + reactDFS(this.props.children, (child) => { if (child.type === Input) { formState[child.props.name] = child.props.value || ''; - validations[child.props.name] = ValidationFactory.getValidator(child.props.validation || 'DEFAULT'); } else if (child.type === Checkbox) { formState[child.props.name] = child.props.checked || false; - validations[child.props.name] = ValidationFactory.getValidator(child.props.validation || 'DEFAULT'); } - }.bind(this)); + }); this.setState({ - form: formState, - validations: validations + form: formState }); }, @@ -60,65 +55,37 @@ const Form = React.createClass({ if (type === Input || type === Checkbox) { let inputName = props.name; + this.validations[inputName] = props.validation; + additionalProps = { - ref: inputName, - value: this.state.form[inputName] || props.value, - error: this.state.errors[inputName], - onChange: this.handleInputChange.bind(this, inputName, type) + onChange: this.handleInputChange.bind(this, inputName, type), + value: this.state.form[inputName] || props.value } } return additionalProps; }, - handleSubmit(event) { + handleSubmit (event) { event.preventDefault(); - if (this.hasFormErrors()) { - this.focusFirstErrorField(); - } else if (this.props.onSubmit) { + if (this.props.onSubmit) { this.props.onSubmit(this.state.form); } }, handleInputChange(inputName, type, event) { let form = _.clone(this.state.form); - let errors = _.clone(this.state.errors); - let inputValue = event.target.value; - form[inputName] = inputValue; - errors[inputName] = this.state.validations[inputName].validate(inputValue, form); + form[inputName] = event.target.value; if (type === Checkbox) { form[inputName] = event.target.checked || false; } - console.log(errors); - this.setState({ - form: form, - errors: errors + form: form }); - }, - - hasFormErrors() { - return _.some(this.validateAllFields(), (error) => error); - }, - - focusFirstErrorField() { - let firstErrorField = this.getFirstErrorField(); - - if (firstErrorField) { - this.refs[firstErrorField].focus(); - } - }, - - getFirstErrorField() { - - }, - - validateAllFields: function () { - } }); diff --git a/client/src/core-components/input.js b/client/src/core-components/input.js index 78f742e4..06765483 100644 --- a/client/src/core-components/input.js +++ b/client/src/core-components/input.js @@ -1,12 +1,12 @@ -const React = require('react'); -const classNames = require('classnames'); -const _ = require('lodash'); +import React from 'react'; +import classNames from 'classnames'; +import _ from 'lodash'; -const Input = React.createClass({ +let Input = React.createClass({ propTypes: { value: React.PropTypes.string, - validation: React.PropTypes.string, + validation: React.PropTypes.func, onChange: React.PropTypes.func, inputType: React.PropTypes.string, password: React.PropTypes.bool diff --git a/client/src/data/i18n-data.js b/client/src/data/i18n-data.js index eafa26dd..34c7ad82 100644 --- a/client/src/data/i18n-data.js +++ b/client/src/data/i18n-data.js @@ -1,13 +1,15 @@ -const englishLanguage = require('data/languages/en'); -const spanishLanguage = require('data/languages/es'); +import keys from 'data/i18n-keys' -const languages = { - 'us': englishLanguage, - 'es': spanishLanguage -}; +let languages = [ + 'us', + 'es' +]; -const i18nData = function (key, lang) { - return languages[lang][key]; + +let i18nData = function (key, lang) { + let langIndex = languages.indexOf(lang); + + return keys[key][langIndex]; }; export default i18nData diff --git a/client/src/data/i18n-keys.js b/client/src/data/i18n-keys.js new file mode 100644 index 00000000..bdb5a198 --- /dev/null +++ b/client/src/data/i18n-keys.js @@ -0,0 +1,5 @@ +export default { + 'SUBMIT': ['Submit', 'Enviar'], + 'LOG_IN': ['Log in', 'Ingresar'], + 'SIGN_UP': ['Sign up', 'Registrarse'] +}; \ No newline at end of file diff --git a/client/src/data/languages/en.js b/client/src/data/languages/en.js deleted file mode 100644 index c7d9b592..00000000 --- a/client/src/data/languages/en.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - 'SUBMIT': 'Submit', - 'LOG_IN': 'Log in', - 'SIGN_UP': 'Sign up', - 'ERROR_EMPTY': 'Invalid value', - 'ERROR_EMAIL': 'Invalid email' -}; \ No newline at end of file diff --git a/client/src/data/languages/es.js b/client/src/data/languages/es.js deleted file mode 100644 index 8f565699..00000000 --- a/client/src/data/languages/es.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - 'SUBMIT': 'Enviar', - 'LOG_IN': 'Ingresar', - 'SIGN_UP': 'Registrarse', - 'ERROR_EMPTY': 'Valor invalido', - 'ERROR_EMAIL': 'Email invalido' -}; \ No newline at end of file diff --git a/client/src/lib-app/validations/email-validator.js b/client/src/lib-app/validations/email-validator.js deleted file mode 100644 index e1b7cb52..00000000 --- a/client/src/lib-app/validations/email-validator.js +++ /dev/null @@ -1,11 +0,0 @@ -const Validator = require('lib-app/validations/validator'); - -class EmailValidator extends Validator { - - validate(value, form) { - if (!value.length) return this.getError('ERROR_EMPTY'); - if (value.indexOf('@') === -1) return this.getError('ERROR_EMAIL'); - } -} - -export default EmailValidator; \ No newline at end of file diff --git a/client/src/lib-app/validations/validations-factory.js b/client/src/lib-app/validations/validations-factory.js deleted file mode 100644 index 77c98652..00000000 --- a/client/src/lib-app/validations/validations-factory.js +++ /dev/null @@ -1,16 +0,0 @@ -const Validator = require('lib-app/validations/validator'); -const EmailValidator = require('lib-app/validations/email-validator'); - -let validators = { - 'DEFAULT': new Validator(), - 'EMAIL': new EmailValidator() -}; - -class ValidatorFactory { - - static getValidator(validatorKey) { - return validators[validatorKey]; - } -} - -export default ValidatorFactory; \ No newline at end of file diff --git a/client/src/lib-app/validations/validator.js b/client/src/lib-app/validations/validator.js deleted file mode 100644 index 62659891..00000000 --- a/client/src/lib-app/validations/validator.js +++ /dev/null @@ -1,13 +0,0 @@ -const i18n = require('lib-app/i18n'); - -class Validator { - validate(value, form) { - if (!value.length) return this.getError('ERROR_EMPTY'); - } - - getError(errorKey) { - return i18n(errorKey); - } -} - -export default Validator \ No newline at end of file