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