From 4770a87eee8b7405d8e6ae036266ab04f3a9c922 Mon Sep 17 00:00:00 2001 From: Alexandru Munteanu <alexandru.munt@gmail.com> Date: Mon, 4 Jun 2018 12:05:06 +0300 Subject: [PATCH] fix(recommendation): fix recommendations authors --- .../component-faraday-selectors/src/index.js | 2 +- .../src/components/EditorialComment.js | 25 +++++++++++++------ .../src/components/EditorialComments.js | 13 ++++++++-- .../src/components/ManuscriptLayout.js | 1 + .../src/components/SideBarActions.js | 2 +- .../src/components/MakeDecision/utils.js | 2 +- .../src/redux/recommendations.js | 2 +- 7 files changed, 34 insertions(+), 13 deletions(-) diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js index adffec4ae..5ccb0a156 100644 --- a/packages/component-faraday-selectors/src/index.js +++ b/packages/component-faraday-selectors/src/index.js @@ -30,7 +30,7 @@ export const currentUserIs = ({ currentUser: { user } }, role) => { export const canInviteReviewers = ({ currentUser: { user } }, project) => { const status = get(project, 'status') - if (!status || status === 'rejected') return false + if (!status || status === 'rejected' || status === 'published') return false const handlingEditor = get(project, 'handlingEditor') const isAdmin = get(user, 'admin') diff --git a/packages/component-manuscript/src/components/EditorialComment.js b/packages/component-manuscript/src/components/EditorialComment.js index b595b7907..c5e883819 100644 --- a/packages/component-manuscript/src/components/EditorialComment.js +++ b/packages/component-manuscript/src/components/EditorialComment.js @@ -26,14 +26,14 @@ const EditorialComment = ({ reason, comments, updatedOn, - handlingEditor: { name }, + author: { name, role }, }) => ( <Root> <Row> <HeaderContainer> <ReasonText>{reason}</ReasonText> <CommentAuthor>{name}</CommentAuthor> - <RoleBadge>he</RoleBadge> + <RoleBadge>{role}</RoleBadge> </HeaderContainer> <DateParser timestamp={updatedOn}> {t => <DefaultText>{t}</DefaultText>} @@ -50,10 +50,22 @@ const EditorialComment = ({ export default compose( setDisplayName('EditorialComment'), - withProps(({ recommendation, comments = [] }) => ({ - reason: parseRecommendationType(recommendation), - comments: parseRecommendationComments(comments), - })), + withProps( + ({ + userId, + editorInChief, + recommendation, + handlingEditor: { id: heId, name: heName }, + comments = [], + }) => ({ + reason: parseRecommendationType(recommendation), + comments: parseRecommendationComments(comments), + author: { + name: userId === heId ? heName : editorInChief, + role: userId === heId ? 'HE' : 'EiC', + }, + }), + ), )(EditorialComment) // #region styled-components @@ -84,7 +96,6 @@ const RoleBadge = styled.span` margin-left: ${th('subGridUnit')}; padding: calc(${th('subGridUnit')} / 3); text-align: center; - text-transform: uppercase; ` const HeaderContainer = styled.div` diff --git a/packages/component-manuscript/src/components/EditorialComments.js b/packages/component-manuscript/src/components/EditorialComments.js index 591c9f31a..d362434c9 100644 --- a/packages/component-manuscript/src/components/EditorialComments.js +++ b/packages/component-manuscript/src/components/EditorialComments.js @@ -7,11 +7,20 @@ import { setDisplayName, withProps, compose } from 'recompose' import { Expandable } from '../molecules' import { EditorialComment } from './' -const EditorialComments = ({ recommendations, handlingEditor }) => ( +const EditorialComments = ({ + recommendations, + handlingEditor, + editorInChief, +}) => ( <Root> <Expandable label="Editorial comments" startExpanded> {recommendations.map(r => ( - <EditorialComment key={r.id} {...r} handlingEditor={handlingEditor} /> + <EditorialComment + key={r.id} + {...r} + editorInChief={editorInChief} + handlingEditor={handlingEditor} + /> ))} </Expandable> </Root> diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index 556a1f4a5..80537acec 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -59,6 +59,7 @@ const ManuscriptLayout = ({ editorialRecommendations.length > 0 && ( <EditorialComments project={project} + editorInChief={editorInChief} recommendations={editorialRecommendations} /> )} diff --git a/packages/component-manuscript/src/components/SideBarActions.js b/packages/component-manuscript/src/components/SideBarActions.js index 5d4befd13..01f60511f 100644 --- a/packages/component-manuscript/src/components/SideBarActions.js +++ b/packages/component-manuscript/src/components/SideBarActions.js @@ -58,7 +58,7 @@ export default compose( const Root = styled.div` border-bottom: ${th('borderDefault')}; display: flex; - justify-content: space-between; + justify-content: flex-end; padding: ${th('subGridUnit')}; ` diff --git a/packages/components-faraday/src/components/MakeDecision/utils.js b/packages/components-faraday/src/components/MakeDecision/utils.js index 1ca6f60c9..398b188fa 100644 --- a/packages/components-faraday/src/components/MakeDecision/utils.js +++ b/packages/components-faraday/src/components/MakeDecision/utils.js @@ -24,7 +24,7 @@ export const parseFormValues = ({ decision, messageToHE }) => { recommendation: decision, recommendationType: 'editorRecommendation', } - return messageToHE + return decision === 'return-to-handling-editor' ? { ...recommendation, comments: [ diff --git a/packages/components-faraday/src/redux/recommendations.js b/packages/components-faraday/src/redux/recommendations.js index 3decec77f..a85e13f8c 100644 --- a/packages/components-faraday/src/redux/recommendations.js +++ b/packages/components-faraday/src/redux/recommendations.js @@ -45,7 +45,7 @@ export const selectRecommendations = state => get(state, 'recommendations.recommendations') || [] export const selectEditorialRecommendations = state => selectRecommendations(state).filter( - r => r.recommendationType === 'editorRecommendation', + r => r.recommendationType === 'editorRecommendation' && r.comments, ) // #endregion -- GitLab