diff --git a/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js b/packages/components-faraday/src/components/SignUp/ReviewerSignUp.js index 479c71a35e5e3398c6a2a45491a3a93875ff5362..514f3fb3a2f36695cae3c2dfceebbd40e0f7872f 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)