diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index 312a61ad8d4d862baf927c2b0abee1405d8dc623..abd4552f0930472cc6164340f990b8b922f72766 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -20,8 +20,8 @@ import { } from './' const ManuscriptLayout = ({ - project, - version, + project = {}, + version = {}, journal, history, currentUser, diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index 61760e51a03f6a48854781d3dd509e0a2201ebea..3e6aff553af19936e6e943f7aabd9c70ceceb79c 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -45,6 +45,7 @@ export default compose( replace, updateVersion: actions.updateFragment, getSignedUrl, + getCollection: actions.getCollection, }, ), ConnectPage(({ currentUser, handlingEditors, project }) => { @@ -64,18 +65,6 @@ export default compose( id: version.id, ...data, }), - downloadFile: ({ getSignedUrl }) => (fileId, fileName) => e => { - e.preventDefault() - getSignedUrl(fileId).then(({ signedUrl }) => { - const a = document.createElement('a') - a.href = `${signedUrl}` - a.download = fileName - a.target = '_blank' - document.body.appendChild(a) - a.click() - document.body.removeChild(a) - }) - }, setEditorInChief: ({ setEiC }) => eic => { if (eic) { const { firstName = '', lastName = '' } = eic @@ -104,14 +93,15 @@ export default compose( location, match, setEditorInChief, + getCollection, } = this.props const collectionId = match.params.project const { agree, invitationId } = parseSearchParams(location.search) if (agree === 'true') { replace(location.pathname) - reviewerDecision(invitationId, collectionId, true).catch( - redirectToError(replace), - ) + reviewerDecision(invitationId, collectionId, true) + .then(() => getCollection({ id: match.params.project })) + .catch(redirectToError(replace)) } apiGet(`/users?editorInChief=true`).then(res => diff --git a/packages/component-manuscript/src/components/ManuscriptVersion.js b/packages/component-manuscript/src/components/ManuscriptVersion.js index 2ecebdcd8a4a4804f89d632273270a9233a4e353..780b31916503239e0af3d5ed3de1313acab30d7c 100644 --- a/packages/component-manuscript/src/components/ManuscriptVersion.js +++ b/packages/component-manuscript/src/components/ManuscriptVersion.js @@ -8,20 +8,21 @@ import { withRouter } from 'react-router-dom' import { parseVersionOptions } from './utils' -const ManuscriptVersion = ({ project, fragments = [], history, match }) => ( - <Menu - inline - onChange={v => - history.push(`/projects/${project.id}/versions/${v}/details`) - } - options={parseVersionOptions(fragments)} - value={get(match, 'params.version')} - /> -) +const ManuscriptVersion = ({ project = {}, fragments = [], history, match }) => + !!fragments.length && ( + <Menu + inline + onChange={v => + history.push(`/projects/${project.id}/versions/${v}/details`) + } + options={parseVersionOptions(fragments)} + value={get(match, 'params.version')} + /> + ) export default compose( withRouter, connect((state, { project }) => ({ - fragments: selectFragments(state, project.fragments), + fragments: selectFragments(state, get(project, 'fragments') || []), })), )(ManuscriptVersion) diff --git a/packages/component-manuscript/src/components/ReviewReportCard.js b/packages/component-manuscript/src/components/ReviewReportCard.js index 077c7da4c98ab3e5ca643e18c85e89cce4b7b887..71bc110df77832e214239c8ecbcc59f722e6a37c 100644 --- a/packages/component-manuscript/src/components/ReviewReportCard.js +++ b/packages/component-manuscript/src/components/ReviewReportCard.js @@ -1,5 +1,6 @@ import React, { Fragment } from 'react' import moment from 'moment' +import { get } from 'lodash' import { th } from '@pubsweet/ui' import { compose } from 'recompose' import { withJournal } from 'xpub-journal' @@ -21,24 +22,41 @@ const ReviewReportCard = ({ report = {}, journal: { recommendations } }) => ( {recommendations.find(r => report.recommendation === r.value).label} </Text> </Row> - <Spacing /> - <Row left> - <Label>Report Text</Label> - </Row> - <Row> - <Text>{report.comments[0].content}</Text> - </Row> - <Spacing /> - - {!!report.comments[0].files.length && ( + {get(report, 'comments[0].content') && ( <Fragment> + <Spacing /> <Row left> - <Label>Files</Label> + <Label>Report Text</Label> + </Row> + <Row> + <Text>{report.comments[0].content}</Text> </Row> + </Fragment> + )} + + {get(report, 'comments[0].content.files') && + !!report.comments[0].files.length && ( + <Fragment> + <Spacing /> + <Row left> + <Label>Files</Label> + </Row> + <Row left> + {report.comments[0].files.map(file => ( + <FileItem compact id={file.id} key={file.id} {...file} /> + ))} + </Row> + </Fragment> + )} + + {get(report, 'comments[1].content') && ( + <Fragment> + <Spacing /> <Row left> - {report.comments[0].files.map(file => ( - <FileItem compact id={file.id} key={file.id} {...file} /> - ))} + <Label>Confidential Note</Label> + </Row> + <Row> + <Text>{report.comments[1].content}</Text> </Row> </Fragment> )} diff --git a/packages/component-manuscript/src/components/ReviewerReportForm.js b/packages/component-manuscript/src/components/ReviewerReportForm.js index 547c85f9fb2ddb6ac37f8a41a31ca8797d25363f..f96a96bad5c954274e52a434dc843725bd6669c0 100644 --- a/packages/component-manuscript/src/components/ReviewerReportForm.js +++ b/packages/component-manuscript/src/components/ReviewerReportForm.js @@ -235,10 +235,7 @@ export default compose( .then(file => { const files = formValues.files || [] const newFiles = [...files, file] - - setTimeout(() => { - changeForm('reviewerReport', 'files', newFiles) - }, 1000) + changeForm('reviewerReport', 'files', newFiles) }) .catch(e => console.error(`Couldn't upload file.`, e)) }, diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js index 0ffd247ad00e55e06063eba4a0919b95ab582e2e..6ef3a6061c0a96982331d975850f958f9d136e9f 100644 --- a/packages/component-manuscript/src/components/utils.js +++ b/packages/component-manuscript/src/components/utils.js @@ -69,7 +69,7 @@ export const parseSearchParams = url => { return parsedObject } -export const parseVersionOptions = fragments => +export const parseVersionOptions = (fragments = []) => fragments.map(f => ({ value: f.id, label: `Version ${f.version} - updated on ${moment(f.submitted).format(