diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js index b3026109d7f1b5a809d236a4730d81f5f16240a1..d11c7d479ecb15cc49cbfe9d7ef2938335e444ce 100644 --- a/packages/component-faraday-ui/src/PublonsTable.js +++ b/packages/component-faraday-ui/src/PublonsTable.js @@ -7,8 +7,20 @@ import { compose, withHandlers, withProps } from 'recompose' import { Label, OpenModal, Text, withFetching } from '../' -const TableView = ({ reviewers, onInviteReviewer, setFetching, isFetching }) => - reviewers.length === 0 ? ( +const TableView = ({ + reviewers, + onInviteReviewer, + setFetching, + isFetching, + publonsError, +}) => { + if (publonsError) + return ( + <Text align="center" error> + {publonsError} + </Text> + ) + return reviewers.length === 0 ? ( <Text align="center">No suggestions yet.</Text> ) : ( <Table> @@ -58,6 +70,7 @@ const TableView = ({ reviewers, onInviteReviewer, setFetching, isFetching }) => </tbody> </Table> ) +} const PublonsTable = ({ publonsFetching, ...rest }) => ( <Fragment>{publonsFetching ? <Spinner /> : <TableView {...rest} />}</Fragment> diff --git a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js index d521f0084fc105ec59973cc19f927c9ed8063ed9..832aa7d1072f894aefcacd650c055edf2e3ac819 100644 --- a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js +++ b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js @@ -29,6 +29,7 @@ const ReviewerDetails = ({ isFetching, previewFile, downloadFile, + fetchingError, canInviteReviewers, onInviteReviewer, onInvitePublonReviewer, @@ -93,6 +94,7 @@ const ReviewerDetails = ({ {selectedTab === 1 && ( <PublonsTable onInvite={onInvitePublonReviewer} + publonsError={fetchingError} publonsFetching={isFetching} reviewers={publonReviewers} /> diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index d5e49b31fe9903b0851c6061fc5f7a3762ed3b91..1309a3f39bc352b61bb5384e28536f3b66c9abc8 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -44,6 +44,7 @@ const ManuscriptLayout = ({ fragment = {}, changeForm, isFetching, + fetchingError, formValues, heExpanded, onHEResponse, @@ -175,6 +176,7 @@ const ManuscriptLayout = ({ {get(currentUser, 'permissions.canViewReviewersDetails', false) && ( <ReviewerDetails currentUser={currentUser} + fetchingError={fetchingError} fragment={fragment} getSignedUrl={getSignedUrl} invitations={invitationsWithReviewers} diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index 1571fe5b0a0654774ab052f07349b2de052bccc3..3f4f4a7437d25889c053eb34ff44b0982bd991b8 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -65,7 +65,7 @@ import { parseEicDecision, parseSearchParams, redirectToError, - handlePublons, + getPublonsReviewers, } from './utils' import { canAssignHE, @@ -395,6 +395,8 @@ export default compose( fetchUpdatedCollection, setPublons, setFetching: setListFetching, + setError, + clearError, }) => (values, { hideModal, setModalError, setFetching }) => { setFetching(true) inviteReviewer({ @@ -407,10 +409,12 @@ export default compose( setFetching(false) hideModal() fetchUpdatedCollection() - handlePublons({ + getPublonsReviewers({ fragmentId: fragment.id, setPublons, setFetching: setListFetching, + setError, + clearError, }) }) .catch(err => { @@ -459,6 +463,8 @@ export default compose( permissions: { canInviteReviewers }, }, setFetching, + setError, + clearError, } = this.props if (hasManuscriptFailure) { @@ -481,7 +487,13 @@ export default compose( ) if (canInviteReviewers) { - handlePublons({ fragmentId, setPublons, setFetching }) + getPublonsReviewers({ + fragmentId, + setPublons, + setFetching, + setError, + clearError, + }) } if (isInvitedHE) { diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js index 4f3b76680cb4eff0714bee57a96fef7f5a1d9649..2ce76ae2a889b405adfad70f9078241bd7e58276 100644 --- a/packages/component-manuscript/src/components/utils.js +++ b/packages/component-manuscript/src/components/utils.js @@ -306,13 +306,22 @@ export const parseEicDecision = ({ decision, message }) => ({ }) // handle publons -export const getPublons = fragmentId => +export const getPublonsAPI = fragmentId => apiGet(`/fragments/${fragmentId}/publons`) -export const handlePublons = ({ fragmentId, setPublons, setFetching }) => { +export const getPublonsReviewers = ({ + fragmentId, + setPublons, + setFetching, + setError, + clearError, +}) => { + clearError() setFetching(true) - getPublons(fragmentId).then(res => { - setPublons(res) - setFetching(false) - }) + getPublonsAPI(fragmentId) + .then(res => { + setPublons(res) + setFetching(false) + }) + .catch(handleError(setError)) }