diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js index 420d05f95612cb0166ee17788777890ef9157d66..1d99118913bfe4cc71a84375acaa9cb078b9442a 100644 --- a/packages/component-faraday-selectors/src/index.js +++ b/packages/component-faraday-selectors/src/index.js @@ -52,3 +52,9 @@ export const getHERecommendation = (state, collectionId, fragmentId) => { ) || {} ) } + +export const canMakeDecision = (state, collection) => { + const isEIC = currentUserIs(state, 'adminEiC') + const status = get(collection, 'status') + return isEIC && status +} diff --git a/packages/component-manuscript/src/components/SideBarActions.js b/packages/component-manuscript/src/components/SideBarActions.js index e8de703b272965188fd0e572536705eaf9e3200b..5d4befd132fce1bdd798db8e03082773836bca66 100644 --- a/packages/component-manuscript/src/components/SideBarActions.js +++ b/packages/component-manuscript/src/components/SideBarActions.js @@ -4,17 +4,23 @@ import { connect } from 'react-redux' import styled from 'styled-components' import { th, Icon } from '@pubsweet/ui' import ZipFiles from 'pubsweet-components-faraday/src/components/Files/ZipFiles' -import { Decision } from 'pubsweet-components-faraday/src/components/MakeDecision' -import { Recommendation } from 'pubsweet-components-faraday/src/components/MakeRecommendation' - import { - currentUserIs, + Decision, + Recommendation, +} from 'pubsweet-components-faraday/src/components' +import { + canMakeDecision, canMakeRecommendation, } from '../../../component-faraday-selectors' -const SideBarActions = ({ isEIC, project, version, canMakeRecommendation }) => ( +const SideBarActions = ({ + project, + version, + canMakeDecision, + canMakeRecommendation, +}) => ( <Root> - {isEIC && ( + {canMakeDecision && ( <Decision collectionId={project.id} fragmentId={version.id} @@ -43,7 +49,7 @@ const SideBarActions = ({ isEIC, project, version, canMakeRecommendation }) => ( export default compose( connect((state, { project }) => ({ - isEIC: currentUserIs(state, 'adminEiC'), + canMakeDecision: canMakeDecision(state, project), canMakeRecommendation: canMakeRecommendation(state, project), })), )(SideBarActions) diff --git a/packages/components-faraday/src/components/Dashboard/DashboardCard.js b/packages/components-faraday/src/components/Dashboard/DashboardCard.js index d6d37d6dfcba61b14e91299cae6c236c7213e026..847dc15b5631bc8bc9be6e8847d6839b426b69a7 100644 --- a/packages/components-faraday/src/components/Dashboard/DashboardCard.js +++ b/packages/components-faraday/src/components/Dashboard/DashboardCard.js @@ -13,23 +13,22 @@ import { DateParser } from 'pubsweet-components-faraday/src/components' import { AuthorsWithTooltip } from 'pubsweet-component-manuscript/src/molecules' import ZipFiles from '../Files/ZipFiles' +import { Decision, Recommendation } from '../' import { InviteReviewers } from '../Reviewers/' import { selectInvitation } from '../../redux/reviewers' import { ReviewerDecision, HandlingEditorSection } from './' import { parseVersion, parseJournalIssue, mapStatusToLabel } from './../utils' import { currentUserIs, + canMakeDecision, canInviteReviewers, canMakeRecommendation, } from '../../../../component-faraday-selectors/src' -import { Decision } from '../MakeDecision' import { ReviewerBreakdown } from '../Invitations' -import { Recommendation } from '../MakeRecommendation' const DashboardCard = ({ isHE, - isEIC, theme, journal, history, @@ -38,6 +37,7 @@ const DashboardCard = ({ invitation, currentUser, deleteProject, + canMakeDecision, showAbstractModal, canInviteReviewers, showConfirmationModal, @@ -66,7 +66,7 @@ const DashboardCard = ({ /> </LeftDetails> <RightDetails flex={2}> - {isEIC && ( + {canMakeDecision && ( <Decision collectionId={project.id} fragmentId={version.id} @@ -193,9 +193,9 @@ export default compose( modalComponent: ConfirmationModal, }), connect((state, { project }) => ({ - isEIC: currentUserIs(state, 'adminEiC'), isHE: currentUserIs(state, 'handlingEditor'), invitation: selectInvitation(state, project.id), + canMakeDecision: canMakeDecision(state, project), canInviteReviewers: canInviteReviewers(state, project), canMakeRecommendation: canMakeRecommendation(state, project), })), diff --git a/packages/components-faraday/src/components/index.js b/packages/components-faraday/src/components/index.js index e01e94e3415c4e7fed83e86b12a50c338c112c04..8765d426a79c94ef859e7f154d49d56a6e59d51e 100644 --- a/packages/components-faraday/src/components/index.js +++ b/packages/components-faraday/src/components/index.js @@ -1,8 +1,13 @@ +import { Decision } from './MakeDecision' +import { Recommendation } from './MakeRecommendation' + export { default as Steps } from './Steps/Steps' export { default as Files } from './Files/Files' export { default as AppBar } from './AppBar/AppBar' export { default as AuthorList } from './AuthorList/AuthorList' export { default as SortableList } from './SortableList/SortableList' +export { Decision } +export { Recommendation } export { DragHandle } from './AuthorList/FormItems' export { Dropdown, DateParser, Logo, Spinner } from './UIComponents'