From acf4641795e229b05fafac7db1c20fb55bad52c3 Mon Sep 17 00:00:00 2001 From: Alexandru Munteanu <alexandru.munteanu@thinslices.com> Date: Tue, 30 Jan 2018 14:50:53 +0200 Subject: [PATCH] Send file type to upload S3 --- .../component-wizard/src/components/Files.js | 12 ++++++++-- packages/component-wizard/src/redux/files.js | 22 +++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/packages/component-wizard/src/components/Files.js b/packages/component-wizard/src/components/Files.js index 7b1b6fbe0..e3c0dabf8 100644 --- a/packages/component-wizard/src/components/Files.js +++ b/packages/component-wizard/src/components/Files.js @@ -102,7 +102,7 @@ export default compose( project, version, }) => type => file => { - uploadFile(file).then(fileResponse => { + uploadFile(file, type).then(fileResponse => { setFiles([...files[type], fileResponse], type) updateFragment(project, { submitted: new Date(), @@ -119,8 +119,16 @@ export default compose( moveItem: ({ setFiles, files }) => type => (dragIndex, hoverIndex) => { setFiles(SortableList.moveItem(files[type], dragIndex, hoverIndex), type) }, - removeFile: () => type => name => e => { + removeFile: ({ + setFiles, + files, + deleteFile, + project, + version, + updateFragment, + }) => type => id => e => { e.preventDefault() + // changeFiles(prev => ({ // ...prev, // [type]: prev[type].filter(f => f.name !== name), diff --git a/packages/component-wizard/src/redux/files.js b/packages/component-wizard/src/redux/files.js index 82f8089e8..795b5ab1e 100644 --- a/packages/component-wizard/src/redux/files.js +++ b/packages/component-wizard/src/redux/files.js @@ -1,4 +1,4 @@ -import request from 'pubsweet-client/src/helpers/api' +import request, { remove } from 'pubsweet-client/src/helpers/api' const initialState = { isFetching: false, @@ -14,6 +14,10 @@ const UPLOAD_REQUEST = 'files/UPLOAD_REQUEST' const UPLOAD_FAILURE = 'files/UPLOAD_FAILURE' const UPLOAD_SUCCESS = 'files/UPLOAD_SUCCESS' +const REMOVE_REQUEST = 'files/REMOVE_REQUEST' +const REMOVE_FAILURE = 'files/REMOVE_FAILURE' +const REMOVE_SUCCESS = 'files/REMOVE_SUCCESS' + const SET_FILES = 'files/SET_FILES' export const setFiles = (files, fileType) => ({ @@ -35,9 +39,10 @@ const uploadSuccess = () => ({ type: UPLOAD_SUCCESS, }) -const createFileData = file => { +const createFileData = (file, type) => { const data = new FormData() data.append('file', file) + data.append('fileType', type) return { method: 'POST', @@ -48,11 +53,15 @@ const createFileData = file => { } } +const removeRequest = () => ({ + type: REMOVE_REQUEST, +}) + export const getFiles = state => state.files.files -export const uploadFile = file => dispatch => { +export const uploadFile = (file, type) => dispatch => { dispatch(uploadRequest()) - return request('/aws-upload', createFileData(file)) + return request('/aws-upload', createFileData(file, type)) .then(r => { dispatch(uploadSuccess()) return r @@ -60,6 +69,11 @@ export const uploadFile = file => dispatch => { .catch(err => dispatch(uploadFailure(err.message))) } +export const deleteFile = fileId => dispatch => { + dispatch(removeRequest()) + return remove(`/aws-delete/${fileId}`) +} + export default (state = initialState, action) => { switch (action.type) { case UPLOAD_REQUEST: -- GitLab