From f0756258a43c65c49e93f4284b326be13f25a37d Mon Sep 17 00:00:00 2001 From: Mihail Hagiu <mihail.hagiu@thinslices.com> Date: Tue, 16 Oct 2018 09:27:21 +0300 Subject: [PATCH] feat(SubmitRevision): Styleguide for DetailsAndAuthors and ManuscriptFiles --- .../submissionRevision/DetailsAndAuthors.js | 108 +++++++++--------- .../submissionRevision/DetailsAndAuthors.md | 16 ++- .../src/submissionRevision/ManuscriptFiles.js | 68 +++++++++++ .../src/submissionRevision/ManuscriptFiles.md | 21 ++++ .../src/submissionRevision/index.js | 1 + 5 files changed, 157 insertions(+), 57 deletions(-) create mode 100644 packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.js create mode 100644 packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.md diff --git a/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.js b/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.js index 55ab4431b..7003c65c0 100644 --- a/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.js +++ b/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.js @@ -14,6 +14,7 @@ import { import { Menu, TextField, ValidatedField } from '@pubsweet/ui' import { th } from '@pubsweet/ui-toolkit' import styled from 'styled-components' +import { ContextualBox } from '../' const Empty = () => <div /> @@ -30,62 +31,65 @@ const DetailsAndAuthors = ({ manuscriptTypes, getTooltipContent, isAuthorsFetching, - setAuthorEditIndex, + onAuthorEdit, + fragment, ...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> + <ContextualBox label="Details and Authors" transparent> + <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> + <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> + <Field component={Empty} name="authors" /> + <WizardAuthors + addAuthor={addAuthor} + authors={get(fragment, 'authors', [])} + changeForm={changeForm} + deleteAuthor={deleteAuthor} + error={authorsError} + isAuthorEdit={isAuthorEdit} + isAuthorsFetching={isAuthorsFetching} + journal={journal} + onAuthorEdit={onAuthorEdit} + project={project} + version={version} + /> + </Root> + </ContextualBox> ) const Root = styled.div` diff --git a/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.md b/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.md index a5b8d6b0d..5f2c9dec3 100644 --- a/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.md +++ b/packages/component-faraday-ui/src/submissionRevision/DetailsAndAuthors.md @@ -1,9 +1,12 @@ ```js -const { compose, withProps } = require('recompose') +const { compose, withProps, withHandlers } = require('recompose') const { connect } = require('react-redux') -const { reduxForm, getFormValues } = require('redux-form') +const { reduxForm, getFormValues, change } = require('redux-form') const Wrapper = compose( + withHandlers({ + onAuthorEdit: props => () => console.log('Edit author') + }), withProps({ manuscriptTypes: [ { @@ -149,12 +152,15 @@ const Wrapper = compose( }), connect(state => ({ formValues: getFormValues('styleguide')(state), - })), + }), + { + changeForm: change + }), reduxForm({ form: 'styleguide', }), -)(({ formValues }) => ( - <DetailsAndAuthors /> +)(( props ) => ( + <DetailsAndAuthors {...props}/> )) ;<Wrapper /> ``` diff --git a/packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.js b/packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.js new file mode 100644 index 000000000..15b222423 --- /dev/null +++ b/packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.js @@ -0,0 +1,68 @@ +import React from 'react' +import { get } from 'lodash' +import { Field } from 'redux-form' +import styled from 'styled-components' +import { Icon } from '@pubsweet/ui' +import { Row, Text, WizardFiles } from 'pubsweet-component-faraday-ui' +import { th } from '@pubsweet/ui-toolkit' +import { ContextualBox } from '../' + +const Empty = () => <div /> + +const ManuscriptFiles = ({ + token, + version, + project, + changeForm, + deleteFile, + uploadFile, + filesError, + getSignedUrl, +}) => ( + <ContextualBox label="Manuscript Files" transparent> + <Root> + <Row justify="flex-start" mb={2}> + <Text secondary> + Drag & drop files in the specific section or click{' '} + <CustomIcon secondary size={2}> + plus + </CustomIcon>{' '} + to upload. Use the{' '} + <CustomIcon secondary size={2}> + menu + </CustomIcon>{' '} + icon to reorder or move files to a different type. + </Text> + </Row> + <Field component={Empty} name="files" /> + <WizardFiles + changeForm={changeForm} + deleteFile={deleteFile} + files={get(version, 'files', {})} + getSignedUrl={getSignedUrl} + project={project} + token={token} + uploadFile={uploadFile} + version={version} + /> + {filesError && ( + <Row justify="flex-start" mt={1}> + <Text error>{filesError}</Text> + </Row> + )} + </Root> + </ContextualBox> +) + +export default ManuscriptFiles + +// #region styled-components +const Root = styled.div` + border-left: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')}; + padding-left: calc(${th('gridUnit')} * 1); +` + +const CustomIcon = styled(Icon)` + vertical-align: sub; +` +// #endregion diff --git a/packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.md b/packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.md new file mode 100644 index 000000000..42a8e2120 --- /dev/null +++ b/packages/component-faraday-ui/src/submissionRevision/ManuscriptFiles.md @@ -0,0 +1,21 @@ +```js +const { compose, withHandlers } = require('recompose') +const { connect } = require('react-redux') +const { reduxForm, getFormValues } = require('redux-form') + +const Wrapper = compose( + withHandlers({ + uploadFile: props => file => Promise.resolve(file), + deleteFile: props => file => console.log('Deleted', file), + }), + connect(state => ({ + formValues: getFormValues('styleguide')(state), + })), + reduxForm({ + form: 'styleguide', + }), +)(( props ) => ( + <ManuscriptFiles {...props} /> +)) +;<Wrapper /> +``` \ No newline at end of file diff --git a/packages/component-faraday-ui/src/submissionRevision/index.js b/packages/component-faraday-ui/src/submissionRevision/index.js index ed09fd3ab..dd442a2f7 100644 --- a/packages/component-faraday-ui/src/submissionRevision/index.js +++ b/packages/component-faraday-ui/src/submissionRevision/index.js @@ -1,2 +1,3 @@ export { default as ResponseToReviewer } from './ResponseToReviewer' +export { default as ManuscriptFiles } from './ManuscripFiles' export { default as DetailsAndAuthors } from './DetailsAndAuthors' -- GitLab