From 01bd9c7784b6ad3988e8eae3329a011e2854eae3 Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Fri, 20 Apr 2018 16:53:09 +0300
Subject: [PATCH] feat(invite-reviewer): add set password error

---
 .../src/components/SignUp/ReviewerSignUp.js   | 27 +++++++++++++------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js b/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js
index 479c71a35..514f3fb3a 100644
--- a/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js
+++ b/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js
@@ -1,6 +1,7 @@
 import React from 'react'
+import { get } from 'lodash'
 import { connect } from 'react-redux'
-import { reduxForm } from 'redux-form'
+import { reduxForm, SubmissionError } from 'redux-form'
 import { push } from 'react-router-redux'
 import { required, minChars } from 'xpub-validators'
 import { compose, withState, lifecycle } from 'recompose'
@@ -50,7 +51,7 @@ const ReviewerSignUp = ({
         {error && (
           <Row>
             <RowItem>
-              <Err>{error}</Err>
+              <Err>Token expired or Something went wrong.</Err>
             </RowItem>
           </Row>
         )}
@@ -107,15 +108,25 @@ export default compose(
       },
     ) => {
       const { collectionId, fragmentId, agree, invitationId } = searchParams
-      setReviewerPassword({
+      return setReviewerPassword({
         ...reviewer,
         password,
-      }).then(() => {
-        loginUser(
-          { username: reviewer.email, password },
-          `/projects/${collectionId}/versions/${fragmentId}/details?agree=${agree}&invitationId=${invitationId}`,
-        )
       })
+        .then(() => {
+          loginUser(
+            { username: reviewer.email, password },
+            `/projects/${collectionId}/versions/${fragmentId}/details?agree=${agree}&invitationId=${invitationId}`,
+          )
+        })
+        .catch(error => {
+          const err = get(error, 'response')
+          if (err) {
+            const errorMessage = get(JSON.parse(err), 'error')
+            throw new SubmissionError({
+              _error: errorMessage || 'Something went wrong',
+            })
+          }
+        })
     },
   }),
 )(ReviewerSignUp)
-- 
GitLab