From f6dd7e5a55c0ebf59518ecd5856672b74aa9f540 Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Fri, 24 Aug 2018 11:18:52 +0300
Subject: [PATCH] feat(metadata): add ManuscriptMetadata

---
 .../component-faraday-ui/src/ContextualBox.md |  4 +-
 packages/component-faraday-ui/src/File.js     | 12 +--
 .../component-faraday-ui/src/FileSection.js   |  1 +
 .../src/ManuscriptFileList.js                 | 76 ++++++++++++++++---
 .../src/ManuscriptMetadata.js                 | 24 +++---
 .../component-faraday-ui/src/WizardFiles.js   |  2 +-
 .../src/components/ManuscriptLayout.js        |  2 +
 .../hindawi-theme/src/elements/Accordion.js   |  5 +-
 packages/hindawi-theme/src/index.js           |  2 +-
 9 files changed, 96 insertions(+), 32 deletions(-)

diff --git a/packages/component-faraday-ui/src/ContextualBox.md b/packages/component-faraday-ui/src/ContextualBox.md
index dc2b6e300..f29c14bfd 100644
--- a/packages/component-faraday-ui/src/ContextualBox.md
+++ b/packages/component-faraday-ui/src/ContextualBox.md
@@ -34,8 +34,8 @@ A contextual box without border, shadow and no backgrounds.
 ```js
 <ContextualBox label="Files" transparent>
   <div>
-    <FileItem file={{ id: '1', name: 'myfile.pdf', size: 123123 }} />
-    <FileItem file={{ id: '2', name: 'myfile2.pdf', size: 1123 }} />
+    <FileItem item={{ id: '1', name: 'myfile.pdf', size: 123123 }} />
+    <FileItem item={{ id: '2', name: 'myfile2.pdf', size: 1123 }} />
   </div>
 </ContextualBox>
 ```
diff --git a/packages/component-faraday-ui/src/File.js b/packages/component-faraday-ui/src/File.js
index 4d8d80bc5..b98d67fb8 100644
--- a/packages/component-faraday-ui/src/File.js
+++ b/packages/component-faraday-ui/src/File.js
@@ -44,7 +44,9 @@ const FileItem = ({
   <Root data-test-id={`file-${file.id}`} {...rest}>
     {typeof dragHandle === 'function' ? dragHandle() : dragHandle}
     <FileInfo>
-      <Text secondary>{file.name}</Text>
+      <Text mr={1} secondary>
+        {file.name}
+      </Text>
       <Label>{fileSize}</Label>
     </FileInfo>
     {hasPreview && (
@@ -117,22 +119,22 @@ export default compose(
 const Root = styled.div`
   align-items: center;
   background-color: ${th('colorBackgroundHue')};
-  border: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')};
-  box-shadow: ${th('boxShadow')};
+  box-shadow: ${({ shadow }) => (shadow ? th('boxShadow') : 'none')};
   border-radius: ${th('borderRadius')};
   display: flex;
+  border: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')};
   height: calc(${th('gridUnit')} * 5);
-
+  white-space: nowrap;
   ${marginHelper};
 `
 
 const FileInfo = styled.div`
   align-items: center;
-  border-right: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')};
   display: flex;
   flex: 1;
   justify-content: space-between;
   height: calc(${th('gridUnit')} * 5);
   padding: 0 ${th('gridUnit')};
+  border-right: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')};
 `
 // #endregion
diff --git a/packages/component-faraday-ui/src/FileSection.js b/packages/component-faraday-ui/src/FileSection.js
index 3a9da8d0e..59382b1ff 100644
--- a/packages/component-faraday-ui/src/FileSection.js
+++ b/packages/component-faraday-ui/src/FileSection.js
@@ -84,6 +84,7 @@ const FileSection = ({
       onDelete={onDelete}
       onDownload={onDownload}
       onPreview={onPreview}
+      shadow
     />
     {error && (
       <Row>
diff --git a/packages/component-faraday-ui/src/ManuscriptFileList.js b/packages/component-faraday-ui/src/ManuscriptFileList.js
index db577bca3..74b5eb01e 100644
--- a/packages/component-faraday-ui/src/ManuscriptFileList.js
+++ b/packages/component-faraday-ui/src/ManuscriptFileList.js
@@ -1,19 +1,39 @@
 import React, { Fragment } from 'react'
-import { Text, FileItem } from 'pubsweet-component-faraday-ui'
+import { Text, FileItem, Item, Row } from 'pubsweet-component-faraday-ui'
+
+import { withFilePreview, withFileDownload } from './helpers'
 
 const ManuscriptFileList = ({
   files: { manuscripts = [], coverLetter = [], supplementary = [] },
+  previewFile,
+  downloadFile,
   ...rest
 }) => (
   <Fragment>
     {!!manuscripts.length && (
       <Fragment>
-        <Text labelLine mb={1} mt={3}>
+        <Text labelLine mb={1} mt={1}>
           MAIN MANUSCRIPT
         </Text>
-        {manuscripts.map(file => (
-          <FileItem item={file} key={file.id} {...rest} mb={1} />
-        ))}
+        <Row justify="flex-start" mb={1}>
+          {manuscripts.map(file => (
+            <Item
+              alignItems="flex-start"
+              flex={0}
+              key={file.id}
+              mr={1}
+              vertical
+            >
+              <FileItem
+                item={file}
+                onDownload={downloadFile}
+                onPreview={previewFile}
+                {...rest}
+                mb={1}
+              />
+            </Item>
+          ))}
+        </Row>
       </Fragment>
     )}
     {!!supplementary.length && (
@@ -21,9 +41,25 @@ const ManuscriptFileList = ({
         <Text labelLine mb={1} mt={2}>
           SUPPLEMENTARY FILES
         </Text>
-        {supplementary.map(file => (
-          <FileItem item={file} key={file.id} {...rest} mb={1} />
-        ))}
+        <Row justify="flex-start" mb={1}>
+          {supplementary.map(file => (
+            <Item
+              alignItems="flex-start"
+              flex={0}
+              key={file.id}
+              mr={1}
+              vertical
+            >
+              <FileItem
+                item={file}
+                onDownload={downloadFile}
+                onPreview={previewFile}
+                {...rest}
+                mb={1}
+              />
+            </Item>
+          ))}
+        </Row>
       </Fragment>
     )}
     {!!coverLetter.length && (
@@ -31,12 +67,28 @@ const ManuscriptFileList = ({
         <Text labelLine mb={1} mt={2}>
           COVER LETTER
         </Text>
-        {coverLetter.map(file => (
-          <FileItem item={file} key={file.id} {...rest} mb={1} />
-        ))}
+        <Row justify="flex-start" mb={1}>
+          {coverLetter.map(file => (
+            <Item
+              alignItems="flex-start"
+              flex={0}
+              key={file.id}
+              mr={1}
+              vertical
+            >
+              <FileItem
+                item={file}
+                onDownload={downloadFile}
+                onPreview={previewFile}
+                {...rest}
+                mb={1}
+              />
+            </Item>
+          ))}
+        </Row>
       </Fragment>
     )}
   </Fragment>
 )
 
-export default ManuscriptFileList
+export default withFilePreview(withFileDownload(ManuscriptFileList))
diff --git a/packages/component-faraday-ui/src/ManuscriptMetadata.js b/packages/component-faraday-ui/src/ManuscriptMetadata.js
index 4dbbdacb7..2978f4269 100644
--- a/packages/component-faraday-ui/src/ManuscriptMetadata.js
+++ b/packages/component-faraday-ui/src/ManuscriptMetadata.js
@@ -1,11 +1,15 @@
 import React, { Fragment } from 'react'
 import { isEmpty, get } from 'lodash'
 
-// import { Accordion } from '@pubsweet/ui'
-import Accordion from 'pubsweet-component-faraday-ui/src/pending/Accordion'
-import { Text, Item } from 'pubsweet-component-faraday-ui'
+import {
+  Text,
+  Item,
+  ContextualBox,
+  ManuscriptFileList,
+} from 'pubsweet-component-faraday-ui'
 
 const ManuscriptMetadata = ({
+  getSignedUrl,
   fragment: {
     files = {},
     authors = [],
@@ -16,32 +20,32 @@ const ManuscriptMetadata = ({
   <Fragment>
     {!!abstract && (
       <Item mb={1}>
-        <Accordion label="Abstract" transparent>
+        <ContextualBox label="Abstract" transparent>
           <Text dangerouslySetInnerHTML={{ __html: abstract }} mb={1} mt={1} />
-        </Accordion>
+        </ContextualBox>
       </Item>
     )}
     {conflicts.hasConflicts === 'yes' && (
       <Item mb={1}>
-        <Accordion label="Conflict of Interest" transparent>
+        <ContextualBox label="Conflict of Interest" transparent>
           <Text
             dangerouslySetInnerHTML={{ __html: get(conflicts, 'message', '') }}
             mb={1}
             mt={1}
           />
-        </Accordion>
+        </ContextualBox>
       </Item>
     )}
     {!isEmpty(files) && (
       <Item mb={1}>
-        <Accordion
+        <ContextualBox
           label={`Files (${files.coverLetter.length +
             files.manuscripts.length +
             files.supplementary.length})`}
           transparent
         >
-          Fisiere aici
-        </Accordion>
+          <ManuscriptFileList files={files} getSignedUrl={getSignedUrl} />
+        </ContextualBox>
       </Item>
     )}
   </Fragment>
diff --git a/packages/component-faraday-ui/src/WizardFiles.js b/packages/component-faraday-ui/src/WizardFiles.js
index 9a1557d59..a95da12f3 100644
--- a/packages/component-faraday-ui/src/WizardFiles.js
+++ b/packages/component-faraday-ui/src/WizardFiles.js
@@ -56,7 +56,7 @@ const WizardFiles = ({
       onFileDrop={addFile('supplementary')}
       onFilePick={addFile('supplementary')}
       onPreview={previewFile}
-      title="Supplimental Files"
+      title="Supplementary Files"
     />
   </Fragment>
 )
diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js
index 037e692e0..8120863b8 100644
--- a/packages/component-manuscript/src/components/ManuscriptLayout.js
+++ b/packages/component-manuscript/src/components/ManuscriptLayout.js
@@ -5,6 +5,7 @@ import {
   Text,
   ManuscriptHeader,
   ManuscriptDetailsTop,
+  ManuscriptMetadata,
 } from 'pubsweet-component-faraday-ui'
 
 const ManuscriptLayout = ({
@@ -37,6 +38,7 @@ const ManuscriptLayout = ({
           fragment={fragment}
           journal={journal}
         />
+        <ManuscriptMetadata fragment={fragment} getSignedUrl={getSignedUrl} />
       </Fragment>
     ) : (
       <Text>Loading...</Text>
diff --git a/packages/hindawi-theme/src/elements/Accordion.js b/packages/hindawi-theme/src/elements/Accordion.js
index 649315076..75707f3e6 100644
--- a/packages/hindawi-theme/src/elements/Accordion.js
+++ b/packages/hindawi-theme/src/elements/Accordion.js
@@ -12,7 +12,10 @@ export default {
   `,
   Header: {
     Root: css`
-      background-color: ${th('accordion.headerBackgroundColor')};
+      background-color: ${props =>
+        !props.transparent
+          ? th('accordion.headerBackgroundColor')
+          : 'transparent'};
       border-radius: ${props => (props.expanded ? 0 : th('borderRadius'))};
       borde-border-top-left-radius: ${th('borderRadius')};
       border-top-right-radius: ${th('borderRadius')};
diff --git a/packages/hindawi-theme/src/index.js b/packages/hindawi-theme/src/index.js
index 1bccea7aa..e57df7559 100644
--- a/packages/hindawi-theme/src/index.js
+++ b/packages/hindawi-theme/src/index.js
@@ -165,7 +165,7 @@ const hindawiTheme = {
   gridUnit: '8px',
 
   /* Border */
-  borderRadius: '5px',
+  borderRadius: '3px',
   borderWidth: '1px', // julien: not 0
   borderStyle: 'solid',
 
-- 
GitLab