From 0d0ee688dd8a505da630c2dd2dbc780fd4a6c95f Mon Sep 17 00:00:00 2001
From: Anca Ursachi <anca.ursachi@thinslices.com>
Date: Tue, 23 Oct 2018 11:39:25 +0300
Subject: [PATCH] fix(manuscriptHeader): Admin and Eic can see the name of
 handliing editor on status HE INVITED

---
 .../src/manuscriptDetails/ManuscriptHeader.js   | 17 +++++++++++++++--
 .../src/components/ManuscriptLayout.js          |  1 -
 .../src/components/ManuscriptPage.js            |  3 +--
 .../component-manuscript/src/redux/editors.js   | 17 +++--------------
 4 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
index 70c2afdd4..64fe6e647 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
@@ -22,7 +22,7 @@ const ManuscriptHeader = ({
   fragment = {},
   manuscriptType = {},
   editorInChief = 'Unassigned',
-  collection: { visibleStatus = 'Draft', customId },
+  collection: { visibleStatus = 'Draft', customId, handlingEditor },
 }) => {
   const { authors = [], metadata = {}, submitted = null } = fragment
   const { title = 'No title', journal = '', type = '' } = metadata
@@ -116,18 +116,30 @@ export default compose(
       revokeInvitation,
       pendingInvitation = {},
       handlingEditors = [],
-      currentUser: { permissions: { canAssignHE }, id: currentUserId },
+      currentUser: {
+        permissions: { canAssignHE },
+        id: currentUserId,
+        admin,
+        editorInChief,
+      },
       collection: { handlingEditor },
+      currentUser,
     }) => () => {
       if (pendingInvitation.userId === currentUserId) {
         return <Text ml={1}>Invited</Text>
       }
+
+      if (pendingInvitation.userId && (admin || editorInChief)) {
+        return <Text ml={1}>{handlingEditor.name}</Text>
+      }
+
       if (pendingInvitation.userId) {
         const person = chain(handlingEditors)
           .filter(he => he.id === pendingInvitation.userId)
           .map(he => ({ ...he, name: `${he.firstName} ${he.lastName}` }))
           .first()
           .value()
+
         return (
           <PersonInvitation
             isFetching={isFetching}
@@ -140,6 +152,7 @@ export default compose(
           />
         )
       }
+
       if (heInvitation) {
         return <Text ml={1}>{handlingEditor.name}</Text>
       }
diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js
index e9d46aa19..9bd884c9c 100644
--- a/packages/component-manuscript/src/components/ManuscriptLayout.js
+++ b/packages/component-manuscript/src/components/ManuscriptLayout.js
@@ -82,7 +82,6 @@ const ManuscriptLayout = ({
           getSignedUrl={getSignedUrl}
           history={history}
         />
-
         <ManuscriptHeader
           collection={collection}
           currentUser={currentUser}
diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js
index 3c642ff36..636aea6e5 100644
--- a/packages/component-manuscript/src/components/ManuscriptPage.js
+++ b/packages/component-manuscript/src/components/ManuscriptPage.js
@@ -132,7 +132,6 @@ export default compose(
     {
       changeForm,
       clearCustomError,
-      assignHandlingEditor,
       revokeHandlingEditor,
       getUsers: actions.getUsers,
       getFragment: actions.getFragment,
@@ -261,7 +260,7 @@ export default compose(
       }
     },
     assignHE: ({
-      assignHandlingEditor,
+      setFetching,
       fetchUpdatedCollection,
       collection: { id: collectionId },
     }) => (email, modalProps) =>
diff --git a/packages/component-manuscript/src/redux/editors.js b/packages/component-manuscript/src/redux/editors.js
index ffe5ac1f4..e28c0dd29 100644
--- a/packages/component-manuscript/src/redux/editors.js
+++ b/packages/component-manuscript/src/redux/editors.js
@@ -43,22 +43,11 @@ export const getHandlingEditors = () => dispatch =>
     dispatch(setHandlingEditors(res.users)),
   )
 
-export const assignHandlingEditor = ({ email, collectionId }) => dispatch => {
-  dispatch(editorsRequest())
-  return create(`/collections/${collectionId}/invitations`, {
+export const assignHandlingEditor = ({ email, collectionId }) =>
+  create(`/collections/${collectionId}/invitations`, {
     email,
     role: 'handlingEditor',
-  }).then(
-    res => {
-      dispatch(editorsDone())
-      return res
-    },
-    err => {
-      dispatch(editorsDone())
-      throw err
-    },
-  )
-}
+  })
 
 export const revokeHandlingEditor = ({
   invitationId,
-- 
GitLab