From 72bffc8472466d8a005b9e69bd3e1a7865a248fd Mon Sep 17 00:00:00 2001
From: Alexandru Munteanu <alexandru.munteanu@thinslices.com>
Date: Thu, 1 Feb 2018 11:22:44 +0200
Subject: [PATCH] remove frament id

---
 .../component-wizard/src/components/FileItem.js    | 14 +++++++++++---
 .../component-wizard/src/components/FileSection.js |  2 ++
 packages/component-wizard/src/components/Files.js  | 14 +++++++++++++-
 .../component-wizard/src/components/WizardStep.js  |  1 +
 packages/component-wizard/src/redux/files.js       |  9 ++++-----
 5 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/packages/component-wizard/src/components/FileItem.js b/packages/component-wizard/src/components/FileItem.js
index a0853bf83..0d70a4708 100644
--- a/packages/component-wizard/src/components/FileItem.js
+++ b/packages/component-wizard/src/components/FileItem.js
@@ -19,7 +19,15 @@ const parseFileSize = size => {
   return `${size} bytes`
 }
 
-const FileItem = ({ dragHandle, name, size, id, removeFile, ...rest }) => (
+const FileItem = ({
+  dragHandle,
+  name,
+  size,
+  id,
+  removeFile,
+  previewFile,
+  ...rest
+}) => (
   <div className={classnames(classes['file-item'])}>
     {dragHandle}
     <div className={classnames(classes.info)}>
@@ -27,9 +35,9 @@ const FileItem = ({ dragHandle, name, size, id, removeFile, ...rest }) => (
       <span>{parseFileSize(size)}</span>
     </div>
     <div className={classnames(classes.buttons)}>
-      <a href={rest.signedUrl} target="_blank">
+      <button onClick={previewFile(id)}>
         <Icon color="#666">eye</Icon>
-      </a>
+      </button>
       <button onClick={removeFile(id)} title="Delete">
         <Icon color="#666">trash-2</Icon>
       </button>
diff --git a/packages/component-wizard/src/components/FileSection.js b/packages/component-wizard/src/components/FileSection.js
index 245dcc5ff..5f3726de3 100644
--- a/packages/component-wizard/src/components/FileSection.js
+++ b/packages/component-wizard/src/components/FileSection.js
@@ -40,6 +40,7 @@ const FileSection = ({
   canDropFile,
   disabledFilepicker,
   dropSortableFile,
+  previewFile,
 }) =>
   connectFileDrop(
     connectDropTarget(
@@ -87,6 +88,7 @@ const FileSection = ({
           listId={listId}
           listItem={FileItem}
           moveItem={moveItem}
+          previewFile={previewFile}
           removeFile={removeFile}
         />
         <FileDropzone label="Drag files here or use the add button." />
diff --git a/packages/component-wizard/src/components/Files.js b/packages/component-wizard/src/components/Files.js
index 69f90a37a..a54117c83 100644
--- a/packages/component-wizard/src/components/Files.js
+++ b/packages/component-wizard/src/components/Files.js
@@ -21,6 +21,7 @@ import {
   getRequestStatus,
   setAllFiles,
   moveFiles,
+  getSignedUrl,
 } from '../redux/files'
 
 const Files = ({
@@ -30,6 +31,7 @@ const Files = ({
   removeFile,
   changeList,
   dropSortableFile,
+  previewFile,
   ...rest
 }) => (
   <div>
@@ -43,6 +45,7 @@ const Files = ({
       listId="manuscripts"
       maxFiles={Number.POSITIVE_INFINITY}
       moveItem={moveItem('manuscripts')}
+      previewFile={previewFile}
       removeFile={removeFile('manuscripts')}
       title="Main manuscript"
     />
@@ -54,6 +57,7 @@ const Files = ({
       listId="supplementary"
       maxFiles={Number.POSITIVE_INFINITY}
       moveItem={moveItem('supplementary')}
+      previewFile={previewFile}
       removeFile={removeFile('supplementary')}
       title="Supplementarry files"
     />
@@ -67,6 +71,7 @@ const Files = ({
       listId="coverLetter"
       maxFiles={1}
       moveItem={moveItem('coverLetter')}
+      previewFile={previewFile}
       removeFile={removeFile('coverLetter')}
       title="Cover letter"
     />
@@ -86,6 +91,7 @@ export default compose(
       deleteFile,
       setAllFiles,
       moveFiles,
+      getSignedUrl,
     },
   ),
   lifecycle({
@@ -95,6 +101,12 @@ export default compose(
     },
   }),
   withHandlers({
+    previewFile: ({ getSignedUrl }) => fileId => e => {
+      e.preventDefault()
+      getSignedUrl(fileId).then(({ signedUrl }) => {
+        window.open(signedUrl)
+      })
+    },
     dropSortableFile: ({ files, setAllFiles }) => () => {
       setAllFiles(files)
     },
@@ -134,7 +146,7 @@ export default compose(
       version,
     }) => type => id => e => {
       e.preventDefault()
-      deleteFile(id, version.id)
+      deleteFile(id)
       const newFiles = {
         ...files,
         [type]: files[type].filter(f => f.id !== id),
diff --git a/packages/component-wizard/src/components/WizardStep.js b/packages/component-wizard/src/components/WizardStep.js
index 52b7609e4..9f0a4b8c5 100644
--- a/packages/component-wizard/src/components/WizardStep.js
+++ b/packages/component-wizard/src/components/WizardStep.js
@@ -66,6 +66,7 @@ export default ({
             )
           },
         )}
+      <Files />
       <div className={classnames(classes.buttons)}>
         <Button onClick={isFirst ? () => history.push('/') : prevStep}>
           {isFirst
diff --git a/packages/component-wizard/src/redux/files.js b/packages/component-wizard/src/redux/files.js
index 06ef16cc5..93dddc958 100644
--- a/packages/component-wizard/src/redux/files.js
+++ b/packages/component-wizard/src/redux/files.js
@@ -89,7 +89,7 @@ export const getRequestStatus = state => state.files.isFetching
 // thunked actions
 export const uploadFile = (file, type, fragmentId) => dispatch => {
   dispatch(uploadRequest(type))
-  return request('/aws-upload', createFileData(file, type, fragmentId))
+  return request('/aws', createFileData(file, type, fragmentId))
     .then(r => {
       dispatch(uploadSuccess())
       return r
@@ -97,9 +97,9 @@ export const uploadFile = (file, type, fragmentId) => dispatch => {
     .catch(err => dispatch(uploadFailure(err.message)))
 }
 
-export const deleteFile = (fileId, fragmentId) => dispatch => {
+export const deleteFile = fileId => dispatch => {
   dispatch(removeRequest())
-  return remove(`/aws-delete/${fragmentId}/${fileId}`)
+  return remove(`/aws/${fileId}`)
     .then(r => {
       dispatch(removeSuccess())
       return r
@@ -107,8 +107,7 @@ export const deleteFile = (fileId, fragmentId) => dispatch => {
     .catch(err => dispatch(removeFailure(err.message)))
 }
 
-export const getSignedUrl = (fileId, fragmentId) =>
-  get(`aws-signed-url/${fragmentId}/${fileId}`)
+export const getSignedUrl = fileId => dispatch => get(`/aws/${fileId}`)
 
 // reducer
 export default (state = initialState, action) => {
-- 
GitLab