From 9e5723c5545dfc8874ea25e1be63ca2606f25598 Mon Sep 17 00:00:00 2001 From: Dmitry Semigradsky Date: Tue, 7 Jul 2015 22:21:04 +0300 Subject: [PATCH 1/3] Update package.json Added missed dependencies --- package.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/package.json b/package.json index ccd92a3..d74bf42 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,12 @@ "validation", "react-component" ], + "dependencies": { + "form-data-to-object": "^0.1.0" + }, + "peerDependencies": { + "react": "^0.14.0-beta1" + }, "devDependencies": { "babel": "^5.6.4", "babel-core": "^5.1.11", From 89759fefdedcd013fca45b248f4d12232123f3bb Mon Sep 17 00:00:00 2001 From: Semigradsky Date: Thu, 9 Jul 2015 11:35:52 +0300 Subject: [PATCH 2/3] Fix showing multiple error messages --- src/main.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main.js b/src/main.js index b37165d..7cf016e 100644 --- a/src/main.js +++ b/src/main.js @@ -320,8 +320,13 @@ Formsy.Form = React.createClass({ return [validationErrors[requiredResults.success[0]]] || null; } - if (!isValid) { - return [validationError]; + if (validationResults.failed.length) { + return validationResults.failed.map(function(failed) { + return validationErrors[failed] ? validationErrors[failed] : validationError; + }).filter(function(x, pos, arr) { + // Remove duplicates + return arr.indexOf(x) === pos; + }); } }.call(this)) From 357f4adf715a58b17faa3b6094aef6b8f7de4391 Mon Sep 17 00:00:00 2001 From: Semigradsky Date: Thu, 9 Jul 2015 12:53:26 +0300 Subject: [PATCH 3/3] `getErrorMessages` should return empty array when there are no errors --- src/Mixin.js | 5 +++-- src/main.js | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mixin.js b/src/Mixin.js index df655d7..d615fc7 100644 --- a/src/Mixin.js +++ b/src/Mixin.js @@ -140,10 +140,11 @@ module.exports = { return this.state._value !== ''; }, getErrorMessage: function () { - return this.getErrorMessages() && this.getErrorMessages()[0]; + var messages = this.getErrorMessages(); + return messages.length ? messages[0] : null; }, getErrorMessages: function () { - return !this.isValid() || this.showRequired() ? (this.state._externalError || this.state._validationError) : null; + return !this.isValid() || this.showRequired() ? (this.state._externalError || this.state._validationError || []) : []; }, isFormDisabled: function () { return this.context.formsy.isFormDisabled(); diff --git a/src/main.js b/src/main.js index 7cf016e..c0924a4 100644 --- a/src/main.js +++ b/src/main.js @@ -317,7 +317,8 @@ Formsy.Form = React.createClass({ } if (isRequired) { - return [validationErrors[requiredResults.success[0]]] || null; + var error = validationErrors[requiredResults.success[0]]; + return error ? [error] : null; } if (validationResults.failed.length) {