From 59881d7fb5384eaf426795af7e7ddf089cc8ea63 Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Wed, 11 Jul 2018 14:47:57 +0300
Subject: [PATCH] refactor(profile): refactor profile form

---
 .../components/UserProfile/AccountDetails.js  | 29 +++++--------------
 .../UserProfile/AccountDetailsEdit.js         | 17 ++++++++---
 2 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/packages/components-faraday/src/components/UserProfile/AccountDetails.js b/packages/components-faraday/src/components/UserProfile/AccountDetails.js
index 59e1c0787..5932cb212 100644
--- a/packages/components-faraday/src/components/UserProfile/AccountDetails.js
+++ b/packages/components-faraday/src/components/UserProfile/AccountDetails.js
@@ -1,29 +1,19 @@
 import React from 'react'
 import styled from 'styled-components'
-import { reduxForm } from 'redux-form'
 import { withJournal } from 'xpub-journal'
-import { compose, withProps, withHandlers, withState } from 'recompose'
-import { onSubmitUser as onSubmit } from '../utils'
+import { compose, withHandlers, withState } from 'recompose'
 
 import AccountDetailsCard from './AccountDetailsCard'
 import AccountDetailsEdit from './AccountDetailsEdit'
 
-const AccountDetails = ({
-  user,
-  isEdit,
-  setEditMode,
-  journal,
-  handleSubmit,
-}) => (
+const AccountDetails = ({ user, isEdit, setEditMode, journal }) => (
   <Root>
     {isEdit ? (
-      <form onSubmit={handleSubmit}>
-        <AccountDetailsEdit
-          journal={journal}
-          setEditMode={setEditMode}
-          user={user}
-        />
-      </form>
+      <AccountDetailsEdit
+        journal={journal}
+        setEditMode={setEditMode}
+        user={user}
+      />
     ) : (
       <AccountDetailsCard
         journal={journal}
@@ -40,11 +30,6 @@ export default compose(
   withHandlers({
     setEditMode: ({ setEdit }) => value => setEdit(value),
   }),
-  withProps(({ user }) => ({ initialValues: user })),
-  reduxForm({
-    form: 'userManagement',
-    onSubmit,
-  }),
 )(AccountDetails)
 
 // #region styles
diff --git a/packages/components-faraday/src/components/UserProfile/AccountDetailsEdit.js b/packages/components-faraday/src/components/UserProfile/AccountDetailsEdit.js
index 1e8b4b2b4..f247552c6 100644
--- a/packages/components-faraday/src/components/UserProfile/AccountDetailsEdit.js
+++ b/packages/components-faraday/src/components/UserProfile/AccountDetailsEdit.js
@@ -1,11 +1,14 @@
 import React from 'react'
 import styled from 'styled-components'
 import { Button, th } from '@pubsweet/ui'
+import { reduxForm } from 'redux-form'
+import { compose, withProps } from 'recompose'
+import { onSubmitUser as onSubmit } from '../utils'
 
 import EditUserForm from '../Admin/EditUserForm'
 
-const AccountDetailsEdit = ({ journal, user, setEditMode }) => (
-  <Root>
+const AccountDetailsEdit = ({ journal, user, setEditMode, handleSubmit }) => (
+  <Root onSubmit={handleSubmit}>
     <EditUserForm journal={journal} title="Edit account details" user={user} />
     <Row>
       <Button onClick={() => setEditMode(false)}>Cancel</Button>
@@ -16,10 +19,16 @@ const AccountDetailsEdit = ({ journal, user, setEditMode }) => (
   </Root>
 )
 
-export default AccountDetailsEdit
+export default compose(
+  withProps(({ user }) => ({ initialValues: user })),
+  reduxForm({
+    form: 'userManagement',
+    onSubmit,
+  }),
+)(AccountDetailsEdit)
 
 // #region styles
-const Root = styled.div`
+const Root = styled.form`
   background-color: ${th('colorBackground')};
   padding: ${th('gridUnit')};
   border: ${th('borderDefault')};
-- 
GitLab