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