Skip to content
Snippets Groups Projects
Commit 646edde7 authored by Mihail Hagiu's avatar Mihail Hagiu
Browse files

feat(SubmitRevision): Add ResponseToReviewer component

parent 5b0b887c
No related branches found
No related tags found
3 merge requests!108Hin 858 revision fix,!106Hin 858,!97HIN-858
import React from 'react'
import { get } from 'lodash'
import { Field } from 'redux-form'
import { required } from 'xpub-validators'
import {
Row,
Item,
Label,
Textarea,
WizardAuthors,
RowOverrideAlert,
ItemOverrideAlert,
} from 'pubsweet-component-faraday-ui'
import { Menu, TextField, ValidatedField } from '@pubsweet/ui'
import { th } from '@pubsweet/ui-toolkit'
import styled from 'styled-components'
const Empty = () => <div />
const DetailsAndAuthors = ({
version,
project,
journal,
addAuthor,
changeForm,
formValues,
isAuthorEdit,
authorsError,
deleteAuthor,
manuscriptTypes,
getTooltipContent,
isAuthorsFetching,
setAuthorEditIndex,
...rest
}) => (
<Root>
<Row mb={3}>
<Item data-test-id="submission-title" flex={3} mr={1} vertical>
<Label required>MANUSCRIPT TITLE</Label>
<ValidatedField
component={TextField}
name="metadata.title"
validate={[required]}
/>
</Item>
<ItemOverrideAlert data-test-id="submission-type" vertical>
<Label required>MANUSCRIPT TYPE</Label>
<ValidatedField
component={input => (
<Menu
options={manuscriptTypes}
{...input}
placeholder="Please select"
/>
)}
name="metadata.type"
validate={[required]}
/>
</ItemOverrideAlert>
</Row>
<RowOverrideAlert mb={2}>
<Item data-test-id="submission-abstract" vertical>
<Label required>ABSTRACT</Label>
<ValidatedField
component={Textarea}
minHeight={15}
name="metadata.abstract"
validate={[required]}
/>
</Item>
</RowOverrideAlert>
<Field component={Empty} name="authors" />
<WizardAuthors
addAuthor={addAuthor}
authors={get(version, 'authors', [])}
changeForm={changeForm}
deleteAuthor={deleteAuthor}
error={authorsError}
isAuthorEdit={isAuthorEdit}
isAuthorsFetching={isAuthorsFetching}
journal={journal}
onAuthorEdit={setAuthorEditIndex}
project={project}
version={version}
/>
</Root>
)
const Root = styled.div`
border-left: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')};
padding-left: calc(${th('gridUnit')} * 1);
`
export default DetailsAndAuthors
```js
const { compose, withProps } = require('recompose')
const { connect } = require('react-redux')
const { reduxForm, getFormValues } = require('redux-form')
const Wrapper = compose(
withProps({
manuscriptTypes: [
{
label: 'Research',
value: 'research',
author: true,
peerReview: true,
abstractRequired: true,
},
{
label: 'Review',
value: 'review',
author: true,
peerReview: true,
abstractRequired: true,
}],
fragment: {
"id": "a9dc38fe-5524-4728-b97f-9495a2eb4bee",
"type": "fragment",
"files": {
"coverLetter": [],
"manuscripts": [
{
"id": "a9dc38fe-5524-4728-b97f-9495a2eb4bee/4a452733-e05d-485a-a0be-7c199c5eb4a1",
"name": "manuscris.pdf",
"size": 39973,
"originalName": "manuscris.pdf"
}
],
"supplementary": []
},
"owners": [
{
"id": "81586d97-d2b4-4423-a1e3-efd228fc67b8",
"username": "mihail.hagiu+re@thinslices.com"
},
{
"id": "96673581-5916-46c5-8a57-d9e69c3e713d",
"username": "admin"
}
],
"authors": [
{
"id": "81586d97-d2b4-4423-a1e3-efd228fc67b8",
"email": "mihail.hagiu+re@thinslices.com",
"country": "AX",
"lastName": "ihail",
"firstName": "M",
"affiliation": "TS",
"isSubmitting": true,
"isCorresponding": true
}
],
"created": "2018-10-11T08:04:47.636Z",
"version": 1,
"metadata": {
"type": "research",
"title": "czxcxzc",
"journal": "Bioinorganic Chemistry and Applications",
"abstract": "xdzczxc"
},
"conflicts": {
"hasFunding": "",
"hasConflicts": "no",
"hasDataAvailability": ""
},
"submitted": 1539606240257,
"collectionId": "e69cddda-74be-47aa-8f99-c388ef5c8a77",
"declarations": {
"agree": true
},
"fragmentType": "version",
"recommendations": []
},
collection: {
"id": "e69cddda-74be-47aa-8f99-c388ef5c8a77",
"type": "collection",
"owners": [
"96673581-5916-46c5-8a57-d9e69c3e713d",
"81586d97-d2b4-4423-a1e3-efd228fc67b8"
],
"status": "rejected",
"created": 1539245087543,
"customId": "5074586",
"fragments": [
"a9dc38fe-5524-4728-b97f-9495a2eb4bee"
],
"technicalChecks": {},
"currentVersion": {
"id": "a9dc38fe-5524-4728-b97f-9495a2eb4bee",
"type": "fragment",
"files": {
"coverLetter": [],
"manuscripts": [
{
"id": "a9dc38fe-5524-4728-b97f-9495a2eb4bee/4a452733-e05d-485a-a0be-7c199c5eb4a1",
"name": "manuscris.pdf",
"size": 39973,
"originalName": "manuscris.pdf"
}
],
"supplementary": []
},
"owners": [
"81586d97-d2b4-4423-a1e3-efd228fc67b8",
"96673581-5916-46c5-8a57-d9e69c3e713d"
],
"authors": [
{
"id": "81586d97-d2b4-4423-a1e3-efd228fc67b8",
"email": "mihail.hagiu+re@thinslices.com",
"country": "AX",
"lastName": "ihail",
"firstName": "M",
"affiliation": "TS",
"isSubmitting": true,
"isCorresponding": true
}
],
"created": "2018-10-11T08:04:47.636Z",
"version": 1,
"metadata": {
"type": "research",
"title": "czxcxzc",
"journal": "Bioinorganic Chemistry and Applications",
"abstract": "xdzczxc"
},
"conflicts": {
"hasFunding": "",
"hasConflicts": "no",
"hasDataAvailability": ""
},
"submitted": 1539606240257,
"collectionId": "e69cddda-74be-47aa-8f99-c388ef5c8a77",
"declarations": {
"agree": true
},
"fragmentType": "version",
"recommendations": []
},
"visibleStatus": "Rejected"
}
}),
connect(state => ({
formValues: getFormValues('styleguide')(state),
})),
reduxForm({
form: 'styleguide',
}),
)(({ formValues }) => (
<DetailsAndAuthors />
))
;<Wrapper />
```
import React from 'react'
import { FilePicker } from '@pubsweet/ui'
import { th } from '@pubsweet/ui-toolkit'
import {
Row,
Item,
Textarea,
ActionLink,
} from 'pubsweet-component-faraday-ui/src'
import styled from 'styled-components'
import { ContextualBox, Label } from '../'
const ResponseToReviewer = ({ allowedFileExtensions, onUpload }) => (
<ContextualBox label="Response to Reviewer Comments" transparent>
<Root>
<Row alignItems="center" justify="space-between">
<Item>
<Label required>Your Reply</Label>
<FilePicker
allowedFileExtensions={allowedFileExtensions}
onUpload={onUpload}
>
<ActionLink icon="plus">UPLOAD FILE</ActionLink>
</FilePicker>
</Item>
</Row>
<Row>
<Textarea />
</Row>
</Root>
</ContextualBox>
)
const Root = styled.div`
border-left: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')};
padding-left: calc(${th('gridUnit')} * 1);
`
export default ResponseToReviewer
```js
const allowedFileExtensions = ['pdf', 'doc', 'docx']
const onUpload = (f) => {console.log('Upload', f)}
<ResponseToReviewer onUpload={onUpload} allowedFileExtensions={allowedFileExtensions}/>
```
export { default as ResponseToReviewer } from './ResponseToReviewer'
export { default as DetailsAndAuthors } from './DetailsAndAuthors'
......@@ -22,6 +22,11 @@ module.exports = {
sectionDepth: 1,
components: ['../component-faraday-ui/src/contextualBoxes/[A-Z]*.js'],
},
{
name: 'Submit Revision',
sectionDepth: 1,
components: ['../component-faraday-ui/src/submissionRevision/[A-Z]*.js'],
},
{
name: 'Pending Items',
sectionDepth: 1,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment