diff --git a/src/redux/modules/upload.js b/src/redux/modules/upload.js index 37780f9f0..f84603e7e 100644 --- a/src/redux/modules/upload.js +++ b/src/redux/modules/upload.js @@ -50,7 +50,7 @@ export const removeFailedFile = createAction( export const uploadSuccessful = createAction( actionTypes.UPLOAD_FULFILLED, (id, payload) => payload, - id => ({ id }) + (id, file) => ({ id, fileName: file.name }) ); export const uploadFailed = createAction( actionTypes.UPLOAD_FAILED, @@ -80,41 +80,25 @@ const reducer = handleActions( list.push({ name: fileName, file: payload[fileName] }) ) .updateIn([id, 'failed'], list => - list.filter(item => item.name !== payload.name) + list.filter(item => item.name !== fileName) ) .updateIn([id, 'removed'], list => - list.filter(item => item.name !== payload.name) + list.filter(item => item.name !== fileName) ) .updateIn([id, 'uploaded'], list => - list.filter(item => item.name !== payload.name) + list.filter(item => item.name !== fileName) ), - [actionTypes.REMOVE_FILE]: (state, { payload, meta: { id } }) => - state - .updateIn([id, 'uploaded'], list => - list.filter(item => item.name !== payload.name) - ) - .updateIn([id, 'removed'], list => list.push(payload)), - - [actionTypes.RETURN_FILE]: (state, { payload, meta: { id } }) => - state - .updateIn([id, 'removed'], list => - list.filter(item => item.name !== payload.name) - ) - .updateIn([id, 'uploaded'], list => list.push(payload)), - - [actionTypes.REMOVE_FAILED_FILE]: (state, { payload, meta: { id } }) => - state.updateIn([id, 'failed'], list => - list.filter(item => item.name !== payload.name) - ), - - [actionTypes.UPLOAD_FULFILLED]: (state, { payload, meta: { id } }) => + [actionTypes.UPLOAD_FULFILLED]: ( + state, + { payload, meta: { id, fileName } } + ) => state .updateIn([id, 'uploading'], list => - list.filter(item => item.name !== payload.name) + list.filter(item => item.name !== fileName) ) .updateIn([id, 'uploaded'], list => - list.filter(item => item.name !== payload.name) + list.filter(item => item.name !== fileName) ) // overwrite file with the same name .updateIn([id, 'uploaded'], list => list.push({ name: payload.name, file: payload }) @@ -129,7 +113,26 @@ const reducer = handleActions( list.filter(item => item.name !== fileName) ) .updateIn([id, 'failed'], list => list.push(file)); - } + }, + + [actionTypes.REMOVE_FILE]: (state, { payload, meta: { id } }) => + state + .updateIn([id, 'uploaded'], list => + list.filter(item => item.name !== payload.name) + ) + .updateIn([id, 'removed'], list => list.push(payload)), + + [actionTypes.RETURN_FILE]: (state, { payload, meta: { id } }) => + state + .updateIn([id, 'removed'], list => + list.filter(item => item.name !== payload.name) + ) + .updateIn([id, 'uploaded'], list => list.push(payload)), + + [actionTypes.REMOVE_FAILED_FILE]: (state, { payload, meta: { id } }) => + state.updateIn([id, 'failed'], list => + list.filter(item => item.name !== payload.name) + ) }, initialState );