diff --git a/packages/component-submit/src/components/Confirm.js b/packages/component-submit/src/components/Confirm.js index 7ed6c6f079c46c8f81c86a6c7fb787f1eb9de5c4..39bf22db4cf7cefd4e7bcb286ff9fc47638fa31c 100644 --- a/packages/component-submit/src/components/Confirm.js +++ b/packages/component-submit/src/components/Confirm.js @@ -1,31 +1,35 @@ import React from 'react' -import { Link } from 'react-router' +import { Button } from 'xpub-ui' import classes from './Confirm.local.css' -const Confirm = ({ project, version, confirmSubmission }) => ( - <article> - <h1 className={classes.heading}> - By submitting the manuscript, you agree to the following statements. - </h1> +const Confirm = ({ toggleConfirming }) => ( + <div className={classes.root}> + <article> + <h1 className={classes.heading}> + By submitting the manuscript, you agree to the following statements. + </h1> - <p>The corresponding author confirms that all co-authors are included, and that everyone listed as a co-author agrees to that role and all the following requirements and acknowledgements.</p> + <p>The corresponding author confirms that all co-authors are included, and that everyone listed as a co-author agrees to that role and all the following requirements and acknowledgements.</p> - <p>The submission represents original work and that sources are given proper attribution. (The journal employs <a href="https://www.crossref.org/services/similarity-check/" target="_blank" rel="noopener noreferrer">CrossCheck</a> to compare submissions against a large and growing database of published scholarly content. If in the judgment of a senior editor a submission is genuinely suspected of plagiarism, it will be returned to the author(s) with a request for explanation.)</p> + <p>The submission represents original work and that sources are given proper attribution. (The journal employs <a href="https://www.crossref.org/services/similarity-check/" target="_blank" rel="noopener noreferrer">CrossCheck</a> to compare submissions against a large and growing database of published scholarly content. If in the judgment of a senior editor a submission is genuinely suspected of plagiarism, it will be returned to the author(s) with a request for explanation.)</p> - <p>The research was conducted in accordance with ethical principles.</p> + <p>The research was conducted in accordance with ethical principles.</p> - <p>There is a Data Accessibility Statement, containing information about the location of open data and materials, in the manuscript.</p> + <p>There is a Data Accessibility Statement, containing information about the location of open data and materials, in the manuscript.</p> - <p>A conflict of interest statement is present in the manuscript, even if to state no conflicts of interest.</p> + <p>A conflict of interest statement is present in the manuscript, even if to state no conflicts of interest.</p> - <div className={classes.actions}> - <button onClick={confirmSubmission}>Submit your manuscript</button> - <span className={classes.actionDivider}> or </span> - <Link - className={classes.cancelLink} - to={`/projects/${project.id}/submit`}>get back to your submission</Link> - </div> - </article> + <div className={classes.actions}> + <button type="submit"> + Submit your manuscript + </button> + <span className={classes.actionDivider}> or </span> + <Button onClick={toggleConfirming}> + get back to your submission + </Button> + </div> + </article> + </div> ) export default Confirm diff --git a/packages/component-submit/src/components/Confirm.local.css b/packages/component-submit/src/components/Confirm.local.css index c2955e9e7b79013b549041408bdeb42d0603c6fc..4becaf9e4c6ca6565e9421a317a82131b262a70e 100644 --- a/packages/component-submit/src/components/Confirm.local.css +++ b/packages/component-submit/src/components/Confirm.local.css @@ -1,11 +1,11 @@ -.heading { +.root { + max-width: 60em; + padding: 4rem; + background: white; + max-height: 100%; + overflow-y: auto; } -/*.actions { - display: flex; - justify-content: space-between; -}*/ - .actionDivider { margin: 0 20px; } diff --git a/packages/component-submit/src/components/Metadata.js b/packages/component-submit/src/components/Metadata.js index 8e70bfb5d19b294288559c484a9ca5f888313650..5fa94307a63fce8938f5e4b02952e6cb812a32cd 100644 --- a/packages/component-submit/src/components/Metadata.js +++ b/packages/component-submit/src/components/Metadata.js @@ -5,7 +5,7 @@ import { CheckboxGroup, Menu, TextField, ValidatedField } from 'xpub-ui' import classes from './Metadata.local.css' import { join, required, minChars, maxChars, minSize, split } from '../lib/validators' -const Metadata = ({ journal, validators }) => ( +const Metadata = ({ journal }) => ( <FormSection name="metadata"> <div className={classes.section} id="metadata.title"> <Field diff --git a/packages/component-submit/src/components/Submit.js b/packages/component-submit/src/components/Submit.js index 6e36e2c2c73f927850300958c4b069ad05ac73c7..f7c888d73fb0a376558c40f2819988431cb2eca5 100644 --- a/packages/component-submit/src/components/Submit.js +++ b/packages/component-submit/src/components/Submit.js @@ -1,16 +1,19 @@ import React from 'react' +import classnames from 'classnames' import { Link } from 'react-router' import { Button } from 'xpub-ui' -import classes from './Submit.local.css' import Metadata from './Metadata' import Declarations from './Declarations' import Suggestions from './Suggestions' import Notes from './Notes' import SupplementaryFiles from './SupplementaryFiles' import Confirm from './Confirm' +import classes from './Submit.local.css' -const Submit = ({ journal, project, version, valid, pristine, submitting, handleSubmit, uploadFile }) => ( - <div className={classes.root}> +const Submit = ({ journal, project, version, valid, pristine, submitting, handleSubmit, uploadFile, confirming, toggleConfirming }) => ( + <div className={classnames(classes.root, { + [classes.confirming]: confirming + })}> <div className={classes.title}> Submission information </div> @@ -27,14 +30,23 @@ const Submit = ({ journal, project, version, valid, pristine, submitting, handle <Suggestions/> <Notes/> <SupplementaryFiles uploadFile={uploadFile}/> + <div> <Button - type="submit" - disabled={pristine || submitting || !valid}>Submit your manuscript</Button> + type="button" + onClick={toggleConfirming} + // disabled={pristine || submitting || !valid} + > + Submit your manuscript + </Button> </div> - </form> - <Confirm project={project} version={version}/> + {confirming && ( + <div className={classes.confirm}> + <Confirm toggleConfirming={toggleConfirming}/> + </div> + )} + </form> </div> ) diff --git a/packages/component-submit/src/components/Submit.local.css b/packages/component-submit/src/components/Submit.local.css index 840b917f467b24cee4a2f8a2b5a4ad7ba704e8d9..54dcf1412bdfa04854ec79b6549b3b9e22d8bde6 100644 --- a/packages/component-submit/src/components/Submit.local.css +++ b/packages/component-submit/src/components/Submit.local.css @@ -7,3 +7,19 @@ font-size: 150%; font-weight: bold; } + +.confirm { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + display: flex; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.95); +} + +.confirming { + overflow: hidden; +} diff --git a/packages/component-submit/src/components/SubmitPage.js b/packages/component-submit/src/components/SubmitPage.js index e606276b583592602b0fc4da097cad96fb305ede..d78d51f354a27389b0f4a476eeb2fea997ae9b0f 100644 --- a/packages/component-submit/src/components/SubmitPage.js +++ b/packages/component-submit/src/components/SubmitPage.js @@ -1,6 +1,7 @@ /* global CONFIG */ -import { compose } from 'recompose' +import { pick } from 'lodash' +import { compose, withState, withHandlers } from 'recompose' import { connect } from 'react-redux' import { reduxForm } from 'redux-form' import actions from 'pubsweet-client/src/actions' @@ -40,21 +41,36 @@ export default compose( actions.getCollection({ id: params.project }), actions.getFragment({ id: params.project }, { id: params.version }) ]), + withJournal, connect( (state, ownProps) => { - const project = selectCollection(state, ownProps.params.project) const version = selectFragment(state, ownProps.params.version) + const paths = ['metadata', 'declarations', 'suggestions', 'notes', 'files'] - return { project, version, initialValues: version } - }, + return { + initialValues: pick(version, paths) + } + } + ), + connect( + (state, ownProps) => ({ + project: selectCollection(state, ownProps.params.project), + version: selectFragment(state, ownProps.params.version) + }), { uploadFile } ), reduxForm({ form: 'submit', + // enableReinitialize: true, onSubmit, onChange }), - withJournal + withState('confirming', 'setConfirming', false), + withHandlers({ + toggleConfirming: props => () => { + props.setConfirming(confirming => !confirming) + } + }) )(Submit) diff --git a/packages/xpub-ui/src/atoms/Button.js b/packages/xpub-ui/src/atoms/Button.js index 052c070638685f2c5acb38db731fb6973034bbb5..ade503f390ab7acbace2df5f4bad831122dec2dd 100644 --- a/packages/xpub-ui/src/atoms/Button.js +++ b/packages/xpub-ui/src/atoms/Button.js @@ -1,9 +1,10 @@ import React from 'react' -const Button = ({ children, type = 'button', disabled}) => ( +const Button = ({ children, type = 'button', disabled, onClick}) => ( <button type={type} - disabled={disabled}>{children}</button> + disabled={disabled} + onClick={onClick}>{children}</button> ) export default Button