diff --git a/packages/component-wizard/src/redux/conversion.js b/packages/component-wizard/src/redux/conversion.js index a4043ca5dd365aadc19f2f7a9e7908e89a592c6a..c085f1e196ddd80a3cf4449212c088353b6807ad 100644 --- a/packages/component-wizard/src/redux/conversion.js +++ b/packages/component-wizard/src/redux/conversion.js @@ -51,7 +51,9 @@ export const createDraftSubmission = history => (dispatch, getState) => { actions.createFragment(collection, { created: new Date(), // TODO: set on server files: { + manuscripts: [], supplementary: [], + coverLetter: [], }, fragmentType: 'version', metadata: {}, diff --git a/packages/components-faraday/src/components/Files/Files.js b/packages/components-faraday/src/components/Files/Files.js index 3bf85519bc16e665a18fdbb36410cab86258a06c..77655bb64d95f313f1eca093e023899b23b9c766 100644 --- a/packages/components-faraday/src/components/Files/Files.js +++ b/packages/components-faraday/src/components/Files/Files.js @@ -1,16 +1,16 @@ import React from 'react' -import { get } from 'lodash' import { th } from '@pubsweet/ui' import PropTypes from 'prop-types' +import { get, isEqual } from 'lodash' import { connect } from 'react-redux' import styled from 'styled-components' import { withRouter } from 'react-router-dom' +import { selectFragment } from 'xpub-selectors' import { change as changeForm } from 'redux-form' import { compose, lifecycle, withState, - getContext, withContext, withHandlers, } from 'recompose' @@ -77,11 +77,11 @@ const Files = ({ export default compose( withRouter, - getContext({ version: PropTypes.object, project: PropTypes.object }), connect( - state => ({ - isFetching: getRequestStatus(state), + (state, { match }) => ({ error: getFileError(state), + isFetching: getRequestStatus(state), + version: selectFragment(state, match.params.version), }), { changeForm, @@ -103,6 +103,13 @@ export default compose( supplementary: get(files, 'supplementary') || [], })) }, + componentWillReceiveProps(nextProps) { + const { setFiles, version: { files: previousFiles } } = this.props + const { version: { files } } = nextProps + if (!isEqual(previousFiles, files)) { + setFiles(files) + } + }, }), withHandlers({ dropSortableFile: ({ files, setFiles, changeForm }) => ( diff --git a/packages/xpub-faraday/app/config/journal/submit-wizard.js b/packages/xpub-faraday/app/config/journal/submit-wizard.js index 132dd9c2fea621e2fdab4981de3171e6e2468101..1dd84548c68bbf86c623db2e2fa95bb7da29cf92 100644 --- a/packages/xpub-faraday/app/config/journal/submit-wizard.js +++ b/packages/xpub-faraday/app/config/journal/submit-wizard.js @@ -174,7 +174,7 @@ export default { title: '4. Manuscript Files Upload', children: [ { - fieldId: 'file-upload', + fieldId: 'files', renderComponent: Files, validate: [requiredFiles], },