diff --git a/packages/component-faraday-ui/src/ManuscriptCard.js b/packages/component-faraday-ui/src/ManuscriptCard.js
index 17f70c42742562c34d01b24e558374e93b92a2f7..942b6fe87125f57e5d69f69d7c69302fff7d188e 100644
--- a/packages/component-faraday-ui/src/ManuscriptCard.js
+++ b/packages/component-faraday-ui/src/ManuscriptCard.js
@@ -1,12 +1,11 @@
 import React, { Fragment } from 'react'
 import { get } from 'lodash'
-import { reduxForm } from 'redux-form'
 import styled from 'styled-components'
 import { th } from '@pubsweet/ui-toolkit'
 import { withJournal } from 'xpub-journal'
-import { H3, H4, DateParser, ValidatedField, TextArea } from '@pubsweet/ui'
+import { H3, H4, DateParser } from '@pubsweet/ui'
 import { compose, withHandlers, setDisplayName, withProps } from 'recompose'
-import { ItemOverrideAlert } from 'pubsweet-component-faraday-ui'
+
 import {
   Tag,
   Text,
@@ -18,20 +17,20 @@ import {
   TextTooltip,
   AuthorTagList,
   ReviewerBreakdown,
+  DeleteManuscriptModal,
 } from './'
 
 import { OpenModal } from './modals'
 
 const ManuscriptCard = ({
-  isAdmin,
   isDraft,
   onDelete,
-  isDeleted,
   isFetching,
-  deleteManuscript,
   onCardClick,
-  canViewReports,
   fragment = {},
+  canViewReports,
+  deleteManuscript,
+  canDeleteManuscript,
   manuscriptType = {},
   collection: { visibleStatus = 'Draft', handlingEditor, customId, id: collId },
 }) => {
@@ -110,16 +109,16 @@ const ManuscriptCard = ({
               </OpenModal>
             </Item>
           )}
-          {isAdmin &&
-            !isDraft &&
-            !isDeleted && (
-              <Item justify="flex-end" onClick={e => e.stopPropagation()}>
-                <FormModal
-                  collectionId={collId}
-                  deleteManuscript={deleteManuscript}
-                />
-              </Item>
-            )}
+
+          {canDeleteManuscript && (
+            <Item justify="flex-end" onClick={e => e.stopPropagation()}>
+              <DeleteManuscriptModal
+                collectionId={collId}
+                modalKey={`archive-${collId}`}
+                onSubmit={deleteManuscript}
+              />
+            </Item>
+          )}
         </Row>
       </MainContainer>
       <SideNavigation>
@@ -128,40 +127,6 @@ const ManuscriptCard = ({
     </Root>
   )
 }
-const Enhanced = () => (
-  <Row>
-    <ItemOverrideAlert data-test-id="manuscript-return-reason" vertical>
-      <Label required>
-        Reason for removing the manuscript from the platform:
-      </Label>
-      <ValidatedField component={TextArea} name="comments" />
-    </ItemOverrideAlert>
-  </Row>
-)
-
-const FormModal = reduxForm({
-  form: 'deleteManuscript',
-  onSubmit: (
-    { comments },
-    dispatch,
-    { deleteManuscript, collectionId },
-  ) => modalProps => deleteManuscript({ collectionId, comments, modalProps }),
-})(({ collectionId, isFetching, handleSubmit }) => (
-  <OpenModal
-    confirmText="Delete"
-    content={Enhanced}
-    isFetching={isFetching}
-    modalKey={`delete-${collectionId}`}
-    onConfirm={modalProps => handleSubmit()(modalProps)}
-    title="Are you sure you want to remove this manuscript?"
-  >
-    {showModal => (
-      <ActionLink height={16} icon="trash" onClick={showModal} size="small">
-        Delete
-      </ActionLink>
-    )}
-  </OpenModal>
-))
 
 export default compose(
   withJournal,
@@ -183,6 +148,9 @@ export default compose(
       isDeleted: status === 'deleted',
     }),
   ),
+  withProps(({ isAdmin, isDraft, isDeleted }) => ({
+    canDeleteManuscript: isAdmin && !isDraft && !isDeleted,
+  })),
   setDisplayName('ManuscriptCard'),
 )(ManuscriptCard)
 
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/DeleteManuscriptModal.js b/packages/component-faraday-ui/src/manuscriptDetails/DeleteManuscriptModal.js
new file mode 100644
index 0000000000000000000000000000000000000000..8067f7ba682d5eac4bb61615ec4506005f00b388
--- /dev/null
+++ b/packages/component-faraday-ui/src/manuscriptDetails/DeleteManuscriptModal.js
@@ -0,0 +1,99 @@
+import React, { Fragment } from 'react'
+import styled from 'styled-components'
+import { compose } from 'recompose'
+import { reduxForm } from 'redux-form'
+import { th } from '@pubsweet/ui-toolkit'
+import { required } from 'xpub-validators'
+import { H2, Button, ValidatedField, TextArea, Spinner } from '@pubsweet/ui'
+import {
+  Row,
+  Text,
+  Label,
+  IconButton,
+  OpenModal,
+  ActionLink,
+  ItemOverrideAlert,
+  withFetching,
+} from 'pubsweet-component-faraday-ui'
+
+const Form = compose(
+  withFetching,
+  reduxForm({
+    form: 'deleteManuscript',
+  }),
+)(({ fetchingError, hideModal, handleSubmit, isFetching }) => (
+  <Root>
+    <IconButton icon="x" onClick={hideModal} right={5} secondary top={5} />
+    <H2>Are you sure you want to remove this manuscript?</H2>
+
+    <Row mt={1}>
+      <ItemOverrideAlert data-test-id="manuscript-return-reason" vertical>
+        <Label required>
+          Reason for removing the manuscript from the platform:
+        </Label>
+        <ValidatedField
+          component={TextArea}
+          name="comments"
+          validate={[required]}
+        />
+      </ItemOverrideAlert>
+    </Row>
+    {fetchingError && (
+      <Text align="center" error mt={1}>
+        {fetchingError}
+      </Text>
+    )}
+    <Row mt={1}>
+      {isFetching ? (
+        <Spinner size={3} />
+      ) : (
+        <Fragment>
+          <Button data-test-id="modal-cancel" onClick={hideModal}>
+            NO
+          </Button>
+          <Button data-test-id="modal-confirm" onClick={handleSubmit} primary>
+            YES
+          </Button>
+        </Fragment>
+      )}
+    </Row>
+  </Root>
+))
+
+const DeleteManuscriptModal = props => (
+  <OpenModal component={Form} {...props}>
+    {showModal => (
+      <ActionLink height={16} icon="trash" onClick={showModal} size="small">
+        Delete
+      </ActionLink>
+    )}
+  </OpenModal>
+)
+
+export default DeleteManuscriptModal
+
+DeleteManuscriptModal.defaultProps = {
+  onSubmit: () => {},
+  collectionId: 'santa-claus',
+  modalKey: 'deleteManuscriptModal',
+}
+
+// #region styles
+const Root = styled.div`
+  align-items: center;
+  background: ${th('colorBackgroundHue')};
+  border: ${th('borderWidth')} ${th('borderStyle')} transparent;
+  border-radius: ${th('borderRadius')};
+  box-shadow: ${th('boxShadow')};
+  display: flex;
+  flex-direction: column;
+  position: relative;
+  padding: calc(${th('gridUnit')} * 3);
+  width: calc(${th('gridUnit')} * 60);
+
+  ${H2} {
+    margin: 0;
+    text-align: center;
+  }
+`
+// #endregion
diff --git a/packages/component-faraday-ui/src/manuscriptDetails/index.js b/packages/component-faraday-ui/src/manuscriptDetails/index.js
index c32284d507c22c2d5d4f105916caefc456ef3ea4..39501caf31bb9a6411b48aaa632fe85bfcd3b2ac 100644
--- a/packages/component-faraday-ui/src/manuscriptDetails/index.js
+++ b/packages/component-faraday-ui/src/manuscriptDetails/index.js
@@ -1,3 +1,4 @@
+export { default as DeleteManuscriptModal } from './DeleteManuscriptModal'
 export { default as ManuscriptDetailsTop } from './ManuscriptDetailsTop'
 export { default as ManuscriptVersion } from './ManuscriptVersion'
 export { default as ManuscriptHeader } from './ManuscriptHeader'
diff --git a/packages/component-faraday-ui/src/modals/MultiAction.js b/packages/component-faraday-ui/src/modals/MultiAction.js
index 3a9acf7d332be3e39d6270cdde72fbf637e81b57..3748de9af6df5a4fef6b920d16d8202bbd2f550b 100644
--- a/packages/component-faraday-ui/src/modals/MultiAction.js
+++ b/packages/component-faraday-ui/src/modals/MultiAction.js
@@ -51,12 +51,12 @@ const MultiAction = ({
 export default compose(
   withHandlers({
     onConfirm: ({ onConfirm, ...props }) => () => {
-      if (onConfirm && typeof onConfirm === 'function') {
+      if (typeof onConfirm === 'function') {
         onConfirm(props)
       }
     },
     onClose: ({ onCancel, ...props }) => () => {
-      if (onCancel && typeof onCancel === 'function') {
+      if (typeof onCancel === 'function') {
         onCancel(props)
       }
       props.hideModal()
diff --git a/packages/component-faraday-ui/src/modals/OpenModal.js b/packages/component-faraday-ui/src/modals/OpenModal.js
index 16ac0097194b27139d999a74ec0d189d7755f577..923053d3c1842c6eb939583843676f579adb310f 100644
--- a/packages/component-faraday-ui/src/modals/OpenModal.js
+++ b/packages/component-faraday-ui/src/modals/OpenModal.js
@@ -1,20 +1,21 @@
 import { compose, withHandlers, withProps } from 'recompose'
 import { withModal } from 'pubsweet-component-modal/src/components'
 
-import { MultiAction, SingleActionModal, FormModal } from './'
+import { MultiAction, SingleActionModal } from './'
 
 const OpenModal = ({ showModal, children }) => children(showModal)
 
 const selectModalComponent = props => {
-  if (props.single) {
+  if (props.component) {
     return {
-      modalComponent: SingleActionModal,
+      modalComponent: props.component,
     }
   }
-  if (props.formModal)
+  if (props.single) {
     return {
-      modalComponent: FormModal,
+      modalComponent: SingleActionModal,
     }
+  }
   return {
     modalComponent: MultiAction,
   }
diff --git a/packages/components-faraday/src/components/Dashboard/Dashboard.js b/packages/components-faraday/src/components/Dashboard/Dashboard.js
index bd217eb5cb99de40ef8b2f42e751563210bd1e0c..b9d1d50e41ecf0309ff0babf9c2ecad29f2293c2 100644
--- a/packages/components-faraday/src/components/Dashboard/Dashboard.js
+++ b/packages/components-faraday/src/components/Dashboard/Dashboard.js
@@ -19,6 +19,7 @@ const Dashboard = ({
       getDefaultFilterValue={getDefaultFilterValue}
       getFilterOptions={getFilterOptions}
     />
+
     <DashboardItems
       deleteCollection={deleteCollection}
       deleteManuscript={deleteManuscript}
diff --git a/packages/components-faraday/src/components/Dashboard/DashboardPage.js b/packages/components-faraday/src/components/Dashboard/DashboardPage.js
index 8a8f424de70f0a4c411b4260aad632d709d03cce..e103791cd21b6bb479c6b4dcd778025b188ebc67 100644
--- a/packages/components-faraday/src/components/Dashboard/DashboardPage.js
+++ b/packages/components-faraday/src/components/Dashboard/DashboardPage.js
@@ -16,8 +16,8 @@ import {
 import { Dashboard } from './'
 import { priorityFilter, orderFilter, withFiltersHOC } from '../Filters'
 
-const deleteManuscript = ({ collectionId, ...body }) =>
-  update(`/collections/${collectionId}/archive`, body)
+const deleteManuscript = ({ collectionId, comments }) =>
+  update(`/collections/${collectionId}/archive`, { comments })
 
 export default compose(
   ConnectPage(() => [
@@ -86,20 +86,21 @@ export default compose(
           handleError(setModalError)(err)
         })
     },
-    deleteManuscript: ({ setFetching, getCollections }) => ({
-      modalProps: { setModalError, hideModal },
-      ...decision
-    }) => {
+    deleteManuscript: ({ getCollections }) => (
+      { comments },
+      dispatch,
+      { setFetching, setError, hideModal, collectionId },
+    ) => {
       setFetching(true)
-      return deleteManuscript(decision)
+      deleteManuscript({ collectionId, comments })
         .then(() => {
           setFetching(false)
           hideModal()
           getCollections()
         })
-        .catch(err => {
+        .catch(e => {
           setFetching(false)
-          handleError(setModalError)(err)
+          handleError(setError)(e)
         })
     },
   }),
diff --git a/packages/components-faraday/src/components/SignUp/SignUpStep0.js b/packages/components-faraday/src/components/SignUp/SignUpStep0.js
index dc60d273a5a3ea675d019a15be37db17a0016c85..e030a1a9c9f420639f2c189ba95835f277a5f3fa 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpStep0.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpStep0.js
@@ -116,7 +116,6 @@ const Step0 = ({ type, error, journal, handleSubmit, initialValues }) =>
       >
         PROCEED TO SET {type === 'signup' && 'EMAIL AND'} PASSWORD
       </Button>
-
       <Row mt={3}>
         <Text display="flex">
           Already have an account?