From cffe437e9197180012208bfc7218ad4816b8512a Mon Sep 17 00:00:00 2001 From: Alexandru Munteanu <alexandru.munt@gmail.com> Date: Thu, 5 Jul 2018 13:58:33 +0300 Subject: [PATCH] feat(dashboard): disable button for not confirmed authors --- .../src/components/Dashboard/Dashboard.js | 9 +++++++-- .../src/components/Dashboard/DashboardPage.js | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/components-faraday/src/components/Dashboard/Dashboard.js b/packages/components-faraday/src/components/Dashboard/Dashboard.js index e40141b33..f21a7ffca 100644 --- a/packages/components-faraday/src/components/Dashboard/Dashboard.js +++ b/packages/components-faraday/src/components/Dashboard/Dashboard.js @@ -1,4 +1,5 @@ import React from 'react' +import { get } from 'lodash' import styled from 'styled-components' import { Button, th } from '@pubsweet/ui' import { compose, withProps } from 'recompose' @@ -6,16 +7,18 @@ import { compose, withProps } from 'recompose' import { DashboardItems, DashboardFilters } from './' const Dashboard = ({ + isStaff, dashboard, currentUser, filterItems, filterValues, deleteProject, dashboardItems, + canCreateDraft, getFilterOptions, changeFilterValue, - getDefaultFilterValue, createDraftSubmission, + getDefaultFilterValue, }) => ( <Root className="dashboard"> <Header> @@ -23,6 +26,7 @@ const Dashboard = ({ <HeaderButtons> <Button data-test="new-manuscript" + disabled={!canCreateDraft} onClick={createDraftSubmission} primary > @@ -40,8 +44,9 @@ const Dashboard = ({ ) export default compose( - withProps(({ dashboard, filterItems }) => ({ + withProps(({ isStaff, dashboard, filterItems, currentUser }) => ({ dashboardItems: filterItems(dashboard.all), + canCreateDraft: isStaff || get(currentUser, 'isConfirmed'), })), )(Dashboard) diff --git a/packages/components-faraday/src/components/Dashboard/DashboardPage.js b/packages/components-faraday/src/components/Dashboard/DashboardPage.js index 7dc3702ac..8e1224e40 100644 --- a/packages/components-faraday/src/components/Dashboard/DashboardPage.js +++ b/packages/components-faraday/src/components/Dashboard/DashboardPage.js @@ -11,7 +11,10 @@ import { createDraftSubmission } from 'pubsweet-component-wizard/src/redux/conve import { Dashboard } from './' import { getHandlingEditors } from '../../redux/editors' -import { getUserPermissions } from '../../../../component-faraday-selectors/src' +import { + currentUserIs, + getUserPermissions, +} from '../../../../component-faraday-selectors/src' import { priorityFilter, importanceSort, withFiltersHOC } from '../Filters' @@ -21,7 +24,7 @@ export default compose( state => { const { collections, conversion } = state const currentUser = selectCurrentUser(state) - + const isStaff = currentUserIs(state, 'staff') const sortedCollections = newestFirst(collections) const dashboard = { @@ -42,6 +45,7 @@ export default compose( } const userPermissions = getUserPermissions(state) return { + isStaff, dashboard, conversion, collections, -- GitLab