diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js index 868a670bd4a2db39005389eb4a5319fd7d06e828..1493dcaf07f232dc17d2ec03e4ea9e9090719b44 100644 --- a/packages/component-faraday-selectors/src/index.js +++ b/packages/component-faraday-selectors/src/index.js @@ -96,6 +96,7 @@ const authorAndReviewersCanViewReportsDetailsStatuses = [ 'rejected', 'accepted', 'reviewCompleted', + 'reviewersInvited', 'inQa', ] @@ -166,6 +167,7 @@ const canReviewerViewEditorialCommentsStatuses = [ 'reviewCompleted', 'pendingApproval', 'revisionRequested', + 'reviewersInvited', ] export const canReviewerViewEditorialComments = ( state, @@ -554,11 +556,12 @@ export const getVersionOptions = (state, collection = {}) => { export const canReview = (state, collection = {}, fragment = {}) => { const fragmentId = get(fragment, 'id', false) - if (!fragmentId) return false - + const ownRecommendation = getOwnRecommendations(state, fragmentId) const isReviewer = currentUserIsReviewer(state, fragmentId) if (!isReviewer) return false - - return get(collection, 'status', 'draft') === 'underReview' + return ( + get(collection, 'status', 'draft') === 'underReview' && + ownRecommendation.length === 0 + ) } diff --git a/packages/component-manuscript/src/components/ReviewerReports.js b/packages/component-manuscript/src/components/ReviewerReports.js index 659d3f2330753045f4cb1100a190e93d5b6307d9..9d838360390efb16be9bb8a837d299b866c55c8a 100644 --- a/packages/component-manuscript/src/components/ReviewerReports.js +++ b/packages/component-manuscript/src/components/ReviewerReports.js @@ -64,6 +64,7 @@ export default compose( publonReviewers = [], reviewerReports = [], currentUser, + isLatestVersion, }) => ({ token: get(currentUser, 'token', ''), publonReviewers, @@ -71,10 +72,17 @@ export default compose( ...i, review: reviewerReports.find(r => r.userId === i.userId), })), - reports: indexReviewers( - reviewerReports.filter(r => r.submittedOn), - invitations, - ), + reports: isLatestVersion + ? indexReviewers( + reviewerReports.filter( + r => r.submittedOn && r.userId === currentUser.id, + ), + invitations, + ) + : indexReviewers( + reviewerReports.filter(r => r.submittedOn), + invitations, + ), }), ), )(ReviewerReports) diff --git a/packages/component-manuscript/src/submitRevision/utils.js b/packages/component-manuscript/src/submitRevision/utils.js index bee60515f02ca64d53e90cb8478ebe32de58ea8b..970d5303370d5be965c0c4ad64bae08d7e1ec5d9 100644 --- a/packages/component-manuscript/src/submitRevision/utils.js +++ b/packages/component-manuscript/src/submitRevision/utils.js @@ -5,7 +5,7 @@ import { autosaveRequest } from 'pubsweet-component-wizard/src/redux/autosave' import { submitRevision } from 'pubsweet-component-wizard/src/redux/conversion' const parseRevision = (values, fragment) => ({ - ...fragment, + ...omit(fragment, 'recommendations'), revision: { ...values, },