From 2ac1b8dfe7a2b95b7f64dac9a9bfa915844a87bd Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Thu, 20 Sep 2018 11:45:44 +0300
Subject: [PATCH] feat(handlingEditor): show invited for HEs

---
 packages/component-faraday-selectors/src/index.js        | 9 ++++++++-
 .../src/manuscriptDetails/ManuscriptHeader.js            | 5 ++++-
 .../src/components/Dashboard/DashboardPage.js            | 4 ++--
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js
index 601eb286e..48940b4c6 100644
--- a/packages/component-faraday-selectors/src/index.js
+++ b/packages/component-faraday-selectors/src/index.js
@@ -175,8 +175,14 @@ export const pendingHEInvitation = (state, collectionId) =>
         !i.hasAnswer,
     )
 
+const parseInvitedHE = (handlingEditor = {}, state, collectionId) => ({
+  ...handlingEditor,
+  name: pendingHEInvitation(state, collectionId)
+    ? 'Invited'
+    : handlingEditor.name,
+})
 const hideCustomIdStatuses = ['draft', 'technicalChecks']
-export const newestFirstParseCustomId = items =>
+export const newestFirstParseDashboard = (state, items) =>
   chain(items)
     .orderBy(['created'], ['desc'])
     .map(item => ({
@@ -184,5 +190,6 @@ export const newestFirstParseCustomId = items =>
       customId:
         !hideCustomIdStatuses.includes(get(item, 'status', 'draft')) &&
         item.customId,
+      handlingEditor: parseInvitedHE(item.handlingEditor, state, item.id),
     }))
     .value()
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
index 6927e7ba4..26afbcc9d 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
+++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js
@@ -101,9 +101,12 @@ export default compose(
       revokeInvitation,
       pendingInvitation,
       handlingEditors = [],
-      currentUser: { canAssignHE },
+      currentUser: { canAssignHE, id: currentUserId },
       collection: { handlingEditor },
     }) => () => {
+      if (pendingInvitation.userId === currentUserId) {
+        return <Text ml={1}>Invited</Text>
+      }
       if (pendingInvitation) {
         const person = chain(handlingEditors)
           .filter(he => he.id === pendingInvitation.userId)
diff --git a/packages/components-faraday/src/components/Dashboard/DashboardPage.js b/packages/components-faraday/src/components/Dashboard/DashboardPage.js
index 6831dbc02..646720b8a 100644
--- a/packages/components-faraday/src/components/Dashboard/DashboardPage.js
+++ b/packages/components-faraday/src/components/Dashboard/DashboardPage.js
@@ -9,7 +9,7 @@ import { selectCurrentUser } from 'xpub-selectors'
 
 import {
   getUserPermissions,
-  newestFirstParseCustomId,
+  newestFirstParseDashboard,
 } from 'pubsweet-component-faraday-selectors'
 
 import { Dashboard } from './'
@@ -21,7 +21,7 @@ export default compose(
     state => {
       const { collections, conversion } = state
       const currentUser = selectCurrentUser(state)
-      const dashboard = newestFirstParseCustomId(collections)
+      const dashboard = newestFirstParseDashboard(state, collections)
 
       const userPermissions = getUserPermissions(state)
       return {
-- 
GitLab