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