From 0f228e5a68f9564f1275812ccb27142efb45a833 Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Mon, 7 May 2018 11:56:00 +0300
Subject: [PATCH] refactor(reviewers): refresh breakdown after revoke/resend
 actions

---
 .../src/components/ReviewsAndReports.js       |  2 +-
 .../Reviewers/ReviewersDetailsList.js         | 19 ++++++++++++-------
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/packages/component-manuscript/src/components/ReviewsAndReports.js b/packages/component-manuscript/src/components/ReviewsAndReports.js
index 7be297382..bed0a757d 100644
--- a/packages/component-manuscript/src/components/ReviewsAndReports.js
+++ b/packages/component-manuscript/src/components/ReviewsAndReports.js
@@ -34,7 +34,7 @@ const ReviewsAndReports = ({ project, reviewers = [] }) => (
   <Root>
     <Expandable
       label="Reviewers & Reports"
-      rightHTML={<ReviewerBreakdown values={project.invitations || []} />}
+      rightHTML={<ReviewerBreakdown type="reviewer" values={reviewers || []} />}
       startExpanded
     >
       <Tabs activeKey={1} sections={getTabSections(project.id, reviewers)} />
diff --git a/packages/components-faraday/src/components/Reviewers/ReviewersDetailsList.js b/packages/components-faraday/src/components/Reviewers/ReviewersDetailsList.js
index c013add4b..36be6c453 100644
--- a/packages/components-faraday/src/components/Reviewers/ReviewersDetailsList.js
+++ b/packages/components-faraday/src/components/Reviewers/ReviewersDetailsList.js
@@ -15,6 +15,7 @@ import {
   inviteReviewer,
   selectFetchingInvite,
   selectReviewersError,
+  getCollectionReviewers,
 } from '../../redux/reviewers'
 
 const ResendRevoke = withTheme(
@@ -55,15 +56,13 @@ const TR = ({
       </DateText>
     </td>
     <td> {r.submittedOn ? `: ${renderTimestamp(r.submittedOn)}` : ''} </td>
-    <td>
-      {r.status === 'pending' ? (
+    <td width={100}>
+      {r.status === 'pending' && (
         <ResendRevoke
           showConfirmResend={showConfirmResend(r)}
           showConfirmRevoke={showConfirmRevoke(r.invitationId)}
           status={r.status}
         />
-      ) : (
-        <div />
       )}
     </td>
   </Row>
@@ -116,7 +115,7 @@ const ModalWrapper = compose(
 ))
 
 export default compose(
-  connect(null, { inviteReviewer, revokeReviewer }),
+  connect(null, { inviteReviewer, revokeReviewer, getCollectionReviewers }),
   withModal2(props => ({
     modalComponent: ModalWrapper,
   })),
@@ -145,6 +144,7 @@ export default compose(
       goBackToReviewers,
       inviteReviewer,
       collectionId,
+      getCollectionReviewers,
     }) => reviewer => () => {
       showModal({
         title: 'Resend reviewer invite',
@@ -153,7 +153,9 @@ export default compose(
           inviteReviewer(
             pick(reviewer, ['email', 'firstName', 'lastName', 'affiliation']),
             collectionId,
-          ).then(hideModal)
+          )
+            .then(() => getCollectionReviewers(collectionId))
+            .then(hideModal)
         },
         onCancel: hideModal,
       })
@@ -165,12 +167,15 @@ export default compose(
       goBackToReviewers,
       revokeReviewer,
       collectionId,
+      getCollectionReviewers,
     }) => invitationId => () => {
       showModal({
         title: 'Unassign Reviewer',
         confirmText: 'Unassign',
         onConfirm: () => {
-          revokeReviewer(invitationId, collectionId).then(hideModal)
+          revokeReviewer(invitationId, collectionId)
+            .then(() => getCollectionReviewers(collectionId))
+            .then(hideModal)
         },
         onCancel: hideModal,
       })
-- 
GitLab