From c868e915d41da3261a912bcea6f3a0f5ca832532 Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Thu, 30 Aug 2018 16:15:36 +0300
Subject: [PATCH] fix(appbar): fix autosave, user dropdown issues

---
 .../component-faraday-ui/src/AppBarMenu.js    | 10 +++++-----
 .../src/AutosaveIndicator.js                  |  6 +-----
 packages/component-faraday-ui/src/index.js    |  2 +-
 .../component-wizard/src/redux/autosave.js    |  2 +-
 packages/hindawi-theme/src/elements/Menu.js   |  4 ++--
 packages/xpub-faraday/app/FaradayApp.js       | 20 ++++++++++++++++---
 .../app/config/journal/metadata.js            |  4 ----
 7 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/packages/component-faraday-ui/src/AppBarMenu.js b/packages/component-faraday-ui/src/AppBarMenu.js
index dc418f6d7..2ad4642d2 100644
--- a/packages/component-faraday-ui/src/AppBarMenu.js
+++ b/packages/component-faraday-ui/src/AppBarMenu.js
@@ -19,9 +19,9 @@ const AppBarMenu = ({
   expanded,
   username,
   toggleMenu,
-  currentUser,
+  currentUser = {},
 }) =>
-  currentUser ? (
+  currentUser.user ? (
     <Root>
       <User onClick={toggleMenu}>
         <Text>{username}</Text>
@@ -93,15 +93,15 @@ const DropdownOption = styled.div`
   display: flex;
   justify-content: flex-start;
 
-  font-family: ${th('fontHeading')};
+  font-family: ${th('fontReading')};
   font-size: ${th('fontSizeBase')};
   line-height: ${th('lineHeightBase')};
 
-  height: calc(${th('gridUnit')} * 3);
+  height: calc(${th('gridUnit')} * 4);
   padding: ${th('gridUnit')};
 
   &:hover {
-    background-color: ${th('colorFurniture')};
+    background-color: ${th('menu.optionBackground')};
   }
 `
 
diff --git a/packages/component-faraday-ui/src/AutosaveIndicator.js b/packages/component-faraday-ui/src/AutosaveIndicator.js
index 17e7be261..57f5d5955 100644
--- a/packages/component-faraday-ui/src/AutosaveIndicator.js
+++ b/packages/component-faraday-ui/src/AutosaveIndicator.js
@@ -15,13 +15,9 @@ class AutosaveIndicator extends Component {
     this.timer = null
   }
 
-  componentDidMount() {
-    this.setTimer()
-  }
-
   componentWillReceiveProps({ autosave: nextAutosave }) {
     const { autosave, toggleVisible } = this.props
-    if (!isEqual(autosave, nextAutosave)) {
+    if (autosave && !isEqual(autosave, nextAutosave)) {
       toggleVisible()
       this.setTimer()
     }
diff --git a/packages/component-faraday-ui/src/index.js b/packages/component-faraday-ui/src/index.js
index d43b8dde0..04e061da8 100644
--- a/packages/component-faraday-ui/src/index.js
+++ b/packages/component-faraday-ui/src/index.js
@@ -6,6 +6,7 @@ export * from './gridItems'
 
 export { default as ActionLink } from './ActionLink'
 export { default as AuthorWithTooltip } from './AuthorWithTooltip'
+export { default as Logo } from './Logo'
 export { default as AppBar } from './AppBar'
 export { default as AppBarMenu } from './AppBarMenu'
 export { default as AuthorCard } from './AuthorCard'
@@ -19,7 +20,6 @@ export { default as FileItem } from './File'
 export { default as FileSection } from './FileSection'
 export { default as IconButton } from './IconButton'
 export { default as Label } from './Label'
-export { default as Logo } from './Logo'
 export { default as ManuscriptCard } from './ManuscriptCard'
 export { default as ReviewerBreakdown } from './ReviewerBreakdown'
 export { default as PersonInfo } from './PersonInfo'
diff --git a/packages/component-wizard/src/redux/autosave.js b/packages/component-wizard/src/redux/autosave.js
index 7372e1124..17049d67c 100644
--- a/packages/component-wizard/src/redux/autosave.js
+++ b/packages/component-wizard/src/redux/autosave.js
@@ -43,7 +43,7 @@ export default (state = initialState, action) => {
     case AUTOSAVE_SUCCESS:
       return {
         ...initialState,
-        lastUpdate: action.receivedAt || action.lastUpdate,
+        lastUpdate: new Date(),
       }
     default:
       return state
diff --git a/packages/hindawi-theme/src/elements/Menu.js b/packages/hindawi-theme/src/elements/Menu.js
index da76d8508..460cdacb4 100644
--- a/packages/hindawi-theme/src/elements/Menu.js
+++ b/packages/hindawi-theme/src/elements/Menu.js
@@ -40,13 +40,13 @@ export default {
     margin-top: calc(${th('gridUnit')} / 2);
   `,
   Options: css`
-    background: ${th('colorBackground')};
+    background: ${th('colorBackgroundHue')};
     box-shadow: ${th('menu.openerShadow')};
   `,
   Option: css`
     border: none;
     color: ${th('colorText')};
-    font-family: ${th('fontHeading')};
+    font-family: ${th('fontReading')};
     font-size: ${th('fontSizeBase')};
     line-height: ${th('lineHeightBase')};
     height: calc(${th('gridUnit')} * 4);
diff --git a/packages/xpub-faraday/app/FaradayApp.js b/packages/xpub-faraday/app/FaradayApp.js
index 10ebbe7f7..2206f956b 100644
--- a/packages/xpub-faraday/app/FaradayApp.js
+++ b/packages/xpub-faraday/app/FaradayApp.js
@@ -1,4 +1,5 @@
 import React from 'react'
+import { get } from 'lodash'
 import { connect } from 'react-redux'
 import styled from 'styled-components'
 import { th } from '@pubsweet/ui-toolkit'
@@ -13,15 +14,28 @@ import {
   AutosaveIndicator,
 } from 'pubsweet-component-faraday-ui'
 
-const App = ({ autosave, journal, goTo, children, logout, currentUser }) => (
+const App = ({
+  autosave,
+  journal = {},
+  goTo,
+  children,
+  logout,
+  currentUser,
+}) => (
   <Root className="faraday-root">
     <AppBar
-      autosave={() => <AutosaveIndicator autosave={autosave} delay={4000} />}
+      autosave={() => (
+        <AutosaveIndicator
+          autosave={autosave}
+          delay={10000}
+          successText="Progress Saved"
+        />
+      )}
       journal={journal}
       logo={() => (
         <Logo
           onClick={() => goTo('/')}
-          src={journal.metadata.logo}
+          src={get(journal, 'metadata.logo')}
           title="Hindawi"
         />
       )}
diff --git a/packages/xpub-faraday/app/config/journal/metadata.js b/packages/xpub-faraday/app/config/journal/metadata.js
index 50100c31d..f5e28f337 100644
--- a/packages/xpub-faraday/app/config/journal/metadata.js
+++ b/packages/xpub-faraday/app/config/journal/metadata.js
@@ -1,9 +1,5 @@
-import React from 'react'
-import { Logo } from 'pubsweet-components-faraday/src/components'
-
 export default {
   issn: '2474-7394',
-  name: <Logo srcUrl="/assets/hindawi-logo.png" />,
   logo: '/assets/hindawi-logo.png',
   nameText: 'Faraday Journal',
   email: 'faraday@hindawi.com',
-- 
GitLab