From 3c875264c103cde6b7b6152d9149bb77fd5e8313 Mon Sep 17 00:00:00 2001
From: Alexandru Munteanu <alexandru.munt@gmail.com>
Date: Tue, 11 Sep 2018 15:46:27 +0300
Subject: [PATCH] fix(author-submission): fix double clicking on slow networks

---
 packages/component-faraday-ui/src/AuthorCard.js    | 5 +++++
 packages/component-faraday-ui/src/IconButton.js    | 9 +++++++--
 packages/component-faraday-ui/src/WizardAuthors.js | 9 ++++-----
 packages/xpub-faraday/config/default.js            | 2 +-
 4 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/packages/component-faraday-ui/src/AuthorCard.js b/packages/component-faraday-ui/src/AuthorCard.js
index eacf93879..1a380e8a9 100644
--- a/packages/component-faraday-ui/src/AuthorCard.js
+++ b/packages/component-faraday-ui/src/AuthorCard.js
@@ -24,6 +24,7 @@ const AuthorTitle = ({
   listIndex,
   saveChanges,
   isSubmitting,
+  formSubmitting,
   toggleEditMode,
   isCorresponding,
 }) => (
@@ -46,6 +47,7 @@ const AuthorTitle = ({
           top={15}
         />
         <IconButton
+          disabled={formSubmitting}
           icon="check-circle"
           iconSize={2}
           onClick={saveChanges}
@@ -87,10 +89,13 @@ const AuthorEdit = ({
   isFetching,
   handleSubmit,
   toggleEditMode,
+  isSubmitting,
+  ...props
 }) => (
   <AuthorContainer>
     <AuthorTitle
       editMode={editMode}
+      formSubmitting={isSubmitting}
       isCorresponding={author.isCorresponding}
       isFetching={isFetching}
       isSubmitting={author.isSubmitting}
diff --git a/packages/component-faraday-ui/src/IconButton.js b/packages/component-faraday-ui/src/IconButton.js
index a408278d2..a2ad4eef7 100644
--- a/packages/component-faraday-ui/src/IconButton.js
+++ b/packages/component-faraday-ui/src/IconButton.js
@@ -9,6 +9,7 @@ const IconButton = styled.div`
   cursor: pointer;
   display: flex;
   justify-content: center;
+  opacity: ${props => (props.disabled ? 0.7 : 1)};
   &:hover {
     opacity: 0.7;
   }
@@ -17,8 +18,12 @@ const IconButton = styled.div`
   ${positionHelper};
 `
 
-export default ({ icon, onClick, iconSize = 3, ...props }) => (
-  <IconButton onClick={onClick} {...props}>
+export default ({ icon, onClick, iconSize = 3, disabled, ...props }) => (
+  <IconButton
+    disabed={disabled}
+    onClick={!disabled ? onClick : null}
+    {...props}
+  >
     <Icon size={iconSize} {...props}>
       {icon}
     </Icon>
diff --git a/packages/component-faraday-ui/src/WizardAuthors.js b/packages/component-faraday-ui/src/WizardAuthors.js
index 261e5d055..7dff3c8b7 100644
--- a/packages/component-faraday-ui/src/WizardAuthors.js
+++ b/packages/component-faraday-ui/src/WizardAuthors.js
@@ -65,7 +65,7 @@ const WizardAuthors = ({
             'https://www.hindawi.com/journals/',
           )}
         >
-          Journal Author Submission Guidelines
+          Author Submission Guidelines
         </ActionLink>
       </Item>
     </Row>
@@ -134,7 +134,7 @@ export default compose(
       editExistingAuthor,
     }) => (values, dispatch, { toggleEditMode }) => {
       if (values.id === 'newAuthor') {
-        addAuthor(
+        return addAuthor(
           {
             ...omit(values, 'id'),
             isSubmitting: authors.length === 1,
@@ -142,10 +142,9 @@ export default compose(
           project.id,
           version.id,
         ).then(saveNewAuthor)
-      } else {
-        editExistingAuthor(values)
-        setTimeout(toggleEditMode, 10)
       }
+      editExistingAuthor(values)
+      setTimeout(toggleEditMode, 10)
     },
   }),
 )(WizardAuthors)
diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js
index 768e93384..0888c3c7c 100644
--- a/packages/xpub-faraday/config/default.js
+++ b/packages/xpub-faraday/config/default.js
@@ -46,7 +46,7 @@ module.exports = {
     API_ENDPOINT: '/api',
     baseUrl: process.env.CLIENT_BASE_URL || 'http://localhost:3000',
     'login-redirect': '/',
-    'redux-log': process.env.NODE_ENV !== 'production',
+    'redux-log': false, // process.env.NODE_ENV !== 'production',
     theme: process.env.PUBSWEET_THEME,
   },
   orcid: {
-- 
GitLab