diff --git a/app/app.js b/app/app.js index 1dc096db124dd8af4f102e706c1f9a9d5005e21e..90a0a198f442d4641c11d92d2776c3e649ca27fc 100644 --- a/app/app.js +++ b/app/app.js @@ -9,7 +9,7 @@ import { configureStore, Root } from 'pubsweet-client' import theme from '@pubsweet/elife-theme' import Routes from './routes' -import * as AuthorDetailsSchema from './components/submission/AuthorDetailsSchema' +import * as AuthorDetailsSchema from './components/submission/AuthorDetails/AuthorDetailsSchema' theme.space = [ 0, diff --git a/app/components/index.js b/app/components/index.js index 7f08b3e36d64ba12ea18775bae8c6259f182b3ec..e83465d8da9dbb0f6cde8531f5b94acb2743e257 100644 --- a/app/components/index.js +++ b/app/components/index.js @@ -4,11 +4,3 @@ export { } from './global/AuthenticatedComponent' export { default as Dashboard } from './dashboard/Dashboard' export { default as LoginPage } from './login/LoginPage' -export { default as AuthorDetailsPage } from './submission/AuthorDetailsPage' -export { default as FileUploadsPage } from './submission/FileUploadsPage' -export { - default as ManuscriptMetadataPage, -} from './submission/ManuscriptMetadataPage' -export { - default as ReviewerSuggestionsPage, -} from './submission/ReviewerSuggestionsPage' diff --git a/app/components/submission/AuthorDetails.js b/app/components/submission/AuthorDetails/AuthorDetails.js similarity index 94% rename from app/components/submission/AuthorDetails.js rename to app/components/submission/AuthorDetails/AuthorDetails.js index efa02b9982408e4557c33620210d5cc031ddc9c0..7fb868126bb5b2d9ab31840e95a30c9eb4f898a9 100644 --- a/app/components/submission/AuthorDetails.js +++ b/app/components/submission/AuthorDetails/AuthorDetails.js @@ -2,9 +2,10 @@ import React from 'react' import { Flex, Box } from 'grid-styled' import { Button, Heading, H1 } from '@pubsweet/ui' -import ValidatedField from '../ui/atoms/ValidatedField' +import ValidatedField from '../../ui/atoms/ValidatedField' import { emptyAssignee } from './AuthorDetailsSchema' +import ProgressBar from '../ProgressBar' class AuthorDetails extends React.Component { constructor() { @@ -28,6 +29,8 @@ class AuthorDetails extends React.Component { return ( <form noValidate onSubmit={handleSubmit}> + <ProgressBar currentStep={0} /> + <H1>Are you handling this submission?</H1> <Flex> diff --git a/app/components/submission/AuthorDetails.md b/app/components/submission/AuthorDetails/AuthorDetails.md similarity index 100% rename from app/components/submission/AuthorDetails.md rename to app/components/submission/AuthorDetails/AuthorDetails.md diff --git a/app/components/submission/AuthorDetailsPage.js b/app/components/submission/AuthorDetails/AuthorDetailsPage.js similarity index 100% rename from app/components/submission/AuthorDetailsPage.js rename to app/components/submission/AuthorDetails/AuthorDetailsPage.js diff --git a/app/components/submission/AuthorDetailsSchema.js b/app/components/submission/AuthorDetails/AuthorDetailsSchema.js similarity index 100% rename from app/components/submission/AuthorDetailsSchema.js rename to app/components/submission/AuthorDetails/AuthorDetailsSchema.js diff --git a/app/components/submission/FileUploads.js b/app/components/submission/FileUploads/FileUploads.js similarity index 81% rename from app/components/submission/FileUploads.js rename to app/components/submission/FileUploads/FileUploads.js index a303f9b059ffb24a91f9bca851d41c075e908ea2..d678ee223f0a635574d081cb622d3f76917793fd 100644 --- a/app/components/submission/FileUploads.js +++ b/app/components/submission/FileUploads/FileUploads.js @@ -1,11 +1,14 @@ import React from 'react' import { Flex, Box } from 'grid-styled' import { H1 } from '@pubsweet/ui' -import FileUpload from '../ui/atoms/FileUpload' -import ButtonLink from '../ui/atoms/ButtonLink' +import FileUpload from '../../ui/atoms/FileUpload' +import ButtonLink from '../../ui/atoms/ButtonLink' +import ProgressBar from '../ProgressBar' const FileUploads = () => ( <React.Fragment> + <ProgressBar currentStep={1} /> + <H1>Upload your manuscript and cover letter</H1> <Flex flexDirection="column"> diff --git a/app/components/submission/FileUploads.md b/app/components/submission/FileUploads/FileUploads.md similarity index 100% rename from app/components/submission/FileUploads.md rename to app/components/submission/FileUploads/FileUploads.md diff --git a/app/components/submission/FileUploadsPage.js b/app/components/submission/FileUploads/FileUploadsPage.js similarity index 100% rename from app/components/submission/FileUploadsPage.js rename to app/components/submission/FileUploads/FileUploadsPage.js diff --git a/app/components/submission/ManuscriptMetadataPage.js b/app/components/submission/ManuscriptMetadata/ManuscriptMetadataPage.js similarity index 71% rename from app/components/submission/ManuscriptMetadataPage.js rename to app/components/submission/ManuscriptMetadata/ManuscriptMetadataPage.js index e13ed46457029beed4fcac8c3c29648f6979a18d..233c78db107c95a70c37665b0c3d4db20020f723 100644 --- a/app/components/submission/ManuscriptMetadataPage.js +++ b/app/components/submission/ManuscriptMetadata/ManuscriptMetadataPage.js @@ -1,9 +1,12 @@ import React from 'react' import { H1 } from '@pubsweet/ui' -import ButtonLink from '../ui/atoms/ButtonLink' +import ButtonLink from '../../ui/atoms/ButtonLink' +import ProgressBar from '../ProgressBar' export default () => ( <React.Fragment> + <ProgressBar currentStep={2} /> + <H1>Help us get your work seen by the right people</H1> <ButtonLink primary to="/submit/suggestions"> diff --git a/app/components/submission/ProgressBar.js b/app/components/submission/ProgressBar.js new file mode 100644 index 0000000000000000000000000000000000000000..afec1ef8bbbe4ef4fae588f76eefab044b3dcb21 --- /dev/null +++ b/app/components/submission/ProgressBar.js @@ -0,0 +1,21 @@ +import React from 'react' +import { Steps } from '@pubsweet/ui' +import { Box } from 'grid-styled' +import PropTypes from 'prop-types' + +const ProgressBar = ({ currentStep }) => ( + <Box mx="auto" width={500}> + <Steps currentStep={currentStep}> + <Steps.Step /> + <Steps.Step /> + <Steps.Step /> + <Steps.Step /> + </Steps> + </Box> +) + +ProgressBar.propTypes = { + currentStep: PropTypes.number.isRequired, +} + +export default ProgressBar diff --git a/app/components/submission/ReviewerSuggestions.js b/app/components/submission/ReviewerSuggestions/ReviewerSuggestions.js similarity index 87% rename from app/components/submission/ReviewerSuggestions.js rename to app/components/submission/ReviewerSuggestions/ReviewerSuggestions.js index 7d128c4c5c254571e2b396a8dd51e33086483dd8..e2e9cfaff4b8b9e409506c7a5ef6101ea74630ee 100644 --- a/app/components/submission/ReviewerSuggestions.js +++ b/app/components/submission/ReviewerSuggestions/ReviewerSuggestions.js @@ -2,11 +2,14 @@ import React from 'react' import { Flex, Box } from 'grid-styled' import { Button, H1 } from '@pubsweet/ui' -import ValidatedField from '../ui/atoms/ValidatedField' -import ButtonLink from '../ui/atoms/ButtonLink' +import ValidatedField from '../../ui/atoms/ValidatedField' +import ButtonLink from '../../ui/atoms/ButtonLink' +import ProgressBar from '../ProgressBar' const ReviewerSuggestions = ({ handleSubmit }) => ( <form noValidate onSubmit={handleSubmit}> + <ProgressBar currentStep={3} /> + <H1>Who would you like to review your work?</H1> <ValidatedField label="Suggested editor(s)" name="suggestedEditors" /> diff --git a/app/components/submission/ReviewerSuggestions.md b/app/components/submission/ReviewerSuggestions/ReviewerSuggestions.md similarity index 100% rename from app/components/submission/ReviewerSuggestions.md rename to app/components/submission/ReviewerSuggestions/ReviewerSuggestions.md diff --git a/app/components/submission/ReviewerSuggestionsPage.js b/app/components/submission/ReviewerSuggestions/ReviewerSuggestionsPage.js similarity index 100% rename from app/components/submission/ReviewerSuggestionsPage.js rename to app/components/submission/ReviewerSuggestions/ReviewerSuggestionsPage.js diff --git a/app/components/submission/ReviewerSuggestionsSchema.js b/app/components/submission/ReviewerSuggestions/ReviewerSuggestionsSchema.js similarity index 100% rename from app/components/submission/ReviewerSuggestionsSchema.js rename to app/components/submission/ReviewerSuggestions/ReviewerSuggestionsSchema.js diff --git a/app/components/submission/SubmissionPage.js b/app/components/submission/SubmissionPage.js new file mode 100644 index 0000000000000000000000000000000000000000..f84b2bcc193f44711f89fb6b879cc7e2b74862b9 --- /dev/null +++ b/app/components/submission/SubmissionPage.js @@ -0,0 +1,20 @@ +import React from 'react' +import { Route, Switch } from 'react-router-dom' +import AuthorDetailsPage from './AuthorDetails/AuthorDetailsPage' +import FileUploadsPage from './FileUploads/FileUploadsPage' +import ManuscriptMetadataPage from './ManuscriptMetadata/ManuscriptMetadataPage' +import ReviewerSuggestionsPage from './ReviewerSuggestions/ReviewerSuggestionsPage' + +const SubmissionPage = ({ match }) => ( + <Switch> + <Route component={FileUploadsPage} path={`${match.path}/upload`} /> + <Route component={ManuscriptMetadataPage} path={`${match.path}/metadata`} /> + <Route + component={ReviewerSuggestionsPage} + path={`${match.path}/suggestions`} + /> + <Route component={AuthorDetailsPage} /> + </Switch> +) + +export default SubmissionPage diff --git a/app/routes.js b/app/routes.js index ae0c3fab4bca8d9d5430cd29bbffc1303491c7a8..0218bd928532cfc6a9f17890baa0d0f0fbf8f63b 100644 --- a/app/routes.js +++ b/app/routes.js @@ -5,12 +5,9 @@ import { AppBar, AuthenticatedComponent, Dashboard, - AuthorDetailsPage, - FileUploadsPage, LoginPage, - ManuscriptMetadataPage, - ReviewerSuggestionsPage, } from './components' +import SubmissionPage from './components/submission/SubmissionPage' const Routes = () => ( <Switch> @@ -18,19 +15,8 @@ const Routes = () => ( <AuthenticatedComponent> <AppBar /> <Switch> - <Route component={AuthorDetailsPage} exact path="/submit" /> - <Route component={FileUploadsPage} exact path="/submit/upload" /> - <Route - component={ManuscriptMetadataPage} - exact - path="/submit/metadata" - /> - <Route - component={ReviewerSuggestionsPage} - exact - path="/submit/suggestions" - /> - <Route component={Dashboard} path="/" /> + <Route component={SubmissionPage} path="/submit" /> + <Route component={Dashboard} /> </Switch> </AuthenticatedComponent> </Switch>