diff --git a/packages/component-wizard/src/components/AuthorList.js b/packages/component-wizard/src/components/AuthorList.js index 3c557a2a4b52aa57bc9fcd6874c82ac1345e00f3..d29102c1f19b54617938ad5a69418c1eb6606539 100644 --- a/packages/component-wizard/src/components/AuthorList.js +++ b/packages/component-wizard/src/components/AuthorList.js @@ -2,7 +2,7 @@ import React from 'react' import PropTypes from 'prop-types' import classnames from 'classnames' import { connect } from 'react-redux' -import { get, debounce } from 'lodash' +import { get } from 'lodash' import { reduxForm } from 'redux-form' import { actions } from 'pubsweet-client' import { required } from 'xpub-validators' @@ -18,7 +18,12 @@ import { } from 'recompose' import { TextField, Menu, Icon, ValidatedField, Button } from '@pubsweet/ui' -import { addAuthor, getFragmentAuthors, setAuthors } from '../redux/authors' +import { + addAuthor, + getFragmentAuthors, + setAuthors, + moveAuthors, +} from '../redux/authors' import classes from './AuthorList.local.scss' import SortableList from './SortableList' @@ -270,6 +275,7 @@ export default compose( { addAuthor, setAuthors, + moveAuthors, updateFragment: actions.updateFragment, }, ), @@ -285,13 +291,15 @@ export default compose( e && e.preventDefault() setEditMode(v => mode) }, - dropItem: ({ updateFragment, authors, project, version }) => - debounce(() => { - updateFragment(project, { - ...version, - authors, - }) - }, 500), + dropItem: ({ + updateFragment, + authors, + project, + version, + setAuthors, + }) => () => { + setAuthors(authors, version.id) + }, countryParser: () => countryCode => countries.find(c => c.value === countryCode).label, parseAuthorType: () => (isSubmitting, isCorresponding) => { @@ -301,14 +309,14 @@ export default compose( }, moveAuthor: ({ authors, - setAuthors, + moveAuthors, project, version, updateFragment, match: { params }, }) => (dragIndex, hoverIndex) => { const newAuthors = SortableList.moveItem(authors, dragIndex, hoverIndex) - setAuthors(newAuthors, params.version) + moveAuthors(newAuthors, params.version) }, removeAuthor: ({ authors, @@ -318,10 +326,7 @@ export default compose( setAuthors, }) => authorEmail => () => { const newAuthors = authors.filter(a => a.email !== authorEmail) - updateFragment(project, { - ...version, - authors: newAuthors, - }).then(() => setAuthors(newAuthors, version.id)) + setAuthors(newAuthors, version.id) }, setAsCorresponding: ({ authors, @@ -334,10 +339,7 @@ export default compose( ...a, isCorresponding: a.isSubmitting || a.email === authorEmail, })) - updateFragment(project, { - ...version, - authors: newAuthors, - }).then(() => setAuthors(newAuthors, version.id)) + setAuthors(newAuthors, version.id) }, }), )(Authors) diff --git a/packages/component-wizard/src/components/Progress.local.scss b/packages/component-wizard/src/components/Progress.local.scss index 3ac86ec244c9d2842e93f3b85ccf3ce48f28e8e7..8d2f115d95660c1d8b312e97a0f3cf470ece60da 100644 --- a/packages/component-wizard/src/components/Progress.local.scss +++ b/packages/component-wizard/src/components/Progress.local.scss @@ -4,7 +4,7 @@ flex-direction: row; justify-content: space-between; margin: 0 40px 70px 40px; - min-width: 400px; + min-width: 500px; } .separator { diff --git a/packages/component-wizard/src/components/WizardStep.js b/packages/component-wizard/src/components/WizardStep.js index 9e30dbc9cb28919f0ea5b56951471cbc62be0a0d..d662d52e7a4fbb72ddfa141b3a389daa352ded04 100644 --- a/packages/component-wizard/src/components/WizardStep.js +++ b/packages/component-wizard/src/components/WizardStep.js @@ -24,10 +24,12 @@ export default ({ <div className={classnames(classes.step)}> <form className={classnames(classes.form)} onSubmit={handleSubmit}> <h3 className={classnames(classes.title)}>{title}</h3> - <p - className={classnames(classes.subtitle)} - dangerouslySetInnerHTML={{ __html: subtitle }} // eslint-disable-line - /> + {subtitle && ( + <div + className={classnames(classes.subtitle)} + dangerouslySetInnerHTML={{ __html: subtitle }} // eslint-disable-line + /> + )} {stepChildren && stepChildren.map( ({ diff --git a/packages/component-wizard/src/index.js b/packages/component-wizard/src/index.js index abfc03ce45939f61cd39ff3ba9ec9ca37011bb01..cb79e54391e79c2f4dbba4a5cf6710d9c4f3e79d 100644 --- a/packages/component-wizard/src/index.js +++ b/packages/component-wizard/src/index.js @@ -2,7 +2,7 @@ module.exports = { client: { components: [() => require('./components')], reducers: { - conversion: () => require('./redux/conversion').default, + wizardConversion: () => require('./redux/conversion').default, authors: () => require('./redux/authors').default, }, }, diff --git a/packages/component-wizard/src/redux/authors.js b/packages/component-wizard/src/redux/authors.js index 41d213512b9a2325aeaf5cb911b5a1db80d2179b..18440cfd06b64e78b1a3987f118a3352b17abbe5 100644 --- a/packages/component-wizard/src/redux/authors.js +++ b/packages/component-wizard/src/redux/authors.js @@ -18,6 +18,10 @@ export const setAuthors = (authors, fragmentId) => dispatch => { dispatch(change('wizard', 'authors', authors)) } +export const moveAuthors = (authors, fragmentId) => dispatch => { + dispatch(_setAuthors(authors, fragmentId)) +} + export const addAuthor = (author, collectionId, fragmentId) => dispatch => api .create(`/fragments/${fragmentId}/authors`, author) diff --git a/packages/xpub-collabra/app/config/journal/submission-wizard.js b/packages/xpub-collabra/app/config/journal/submission-wizard.js new file mode 100644 index 0000000000000000000000000000000000000000..238c2542680f8a5374d0a16219369dfe7293df3c --- /dev/null +++ b/packages/xpub-collabra/app/config/journal/submission-wizard.js @@ -0,0 +1,328 @@ +import React from 'react' +import { AbstractEditor, TitleEditor, NoteEditor } from 'xpub-edit' +import { + Menu, + CheckboxGroup, + RadioGroup, + TextField, + Supplementary, +} from '@pubsweet/ui' +import uploadFileFn from 'xpub-upload' +import { + required, + minChars, + maxChars, + minSize, + join, + split, +} from 'xpub-validators' + +import articleTypes from './article-types' +import articleSections from './article-sections' +import declarations from './declarations' + +const minSize1 = minSize(1) +const minChars20 = minChars(20) +const minChars100 = minChars(100) +const maxChars500 = maxChars(500) +const maxChars5000 = maxChars(5000) +const joinComma = join(',') +const splitComma = split(',') + +const DeclarationInput = ({ label, ...rest }) => ( + <div style={{ display: 'flex', justifyContent: 'space-between' }}> + <label style={{ display: 'inline-block', marginTop: '15px' }}> + {label} + </label>{' '} + <RadioGroup inline {...rest} /> + </div> +) +const Spacing = () => <div style={{ width: '100%', height: '30px' }} /> +const Label = ({ label }) => ( + <label + style={{ display: 'inline-block', marginTop: '15px', marginBottom: '5px' }} + > + <b>{label}</b> + </label> +) +const SubLabel = ({ label }) => ( + <label + style={{ display: 'inline-block', marginTop: '10px', marginBottom: '5px' }} + > + {label} + </label> +) + +const uploadFile = input => uploadFileFn(input) + +export default { + showProgress: false, + submitText: 'Submit your manuscript', + backText: 'Back', + cancelText: 'Cancel', + nextText: 'Next', + formSectionKeys: [ + 'metadata', + 'declarations', + 'suggestions', + 'notes', + 'files', + ], + dispatchFunctions: [uploadFile], + steps: [ + { + label: 'Submission information', + title: 'Submission information', + subtitle: `We have ingested your manuscript. To access your manuscript in an editor, please view manuscript page. + <br/> To complete your submission, please answer the following questions. <br/> + The answers will be automatically saved.`, + children: [ + { + fieldId: 'metadata.title', + renderComponent: TitleEditor, + placeholder: 'Title', + title: 'Title', + validate: [required, minChars20, maxChars500], + }, + { + fieldId: 'spacing-0', + renderComponent: Spacing, + }, + { + fieldId: 'metadata.abstract', + renderComponent: AbstractEditor, + title: 'Abstract', + placeholder: 'Write an abstract', + validate: [required, minChars100, maxChars5000], + }, + { + fieldId: 'spacing-authors', + renderComponent: Spacing, + }, + { + fieldId: 'label-authors', + renderComponent: Label, + label: 'Authors', + }, + { + fieldId: 'metadata.authors', + renderComponent: TextField, + title: 'Authors', + placeholder: 'Enter author names...', + format: join(), + parse: split(), + validate: [minSize1], + }, + { + fieldId: 'spacing-Keywords', + renderComponent: Spacing, + }, + { + fieldId: 'label-Keywords', + renderComponent: Label, + label: 'Keywords', + }, + { + fieldId: 'metadata.keywords', + renderComponent: TextField, + title: 'Authors', + placeholder: 'Enter keywords...', + format: join(), + parse: split(), + validate: [minSize1], + }, + { + fieldId: 'spacing-article', + renderComponent: Spacing, + }, + { + fieldId: 'label-article', + renderComponent: Label, + label: 'Article Type', + }, + { + fieldId: 'metadata.articleType', + renderComponent: Menu, + options: articleTypes, + validate: [required], + }, + { + fieldId: 'spacing-section', + renderComponent: Spacing, + }, + { + fieldId: 'metadata.articleSection', + renderComponent: CheckboxGroup, + label: 'Section', + options: articleSections, + validate: [required], + }, + { + fieldId: 'spacing-decl', + renderComponent: Spacing, + }, + { + fieldId: `declarations.${declarations.questions[0].id}`, + label: declarations.questions[0].legend, + renderComponent: DeclarationInput, + options: [ + { value: 'yes', label: 'Yes' }, + { value: 'no', label: 'No' }, + ], + validate: [required], + }, + { + fieldId: `declarations.${declarations.questions[1].id}`, + label: declarations.questions[1].legend, + renderComponent: DeclarationInput, + options: [ + { value: 'yes', label: 'Yes' }, + { value: 'no', label: 'No' }, + ], + validate: [required], + }, + { + fieldId: `declarations.${declarations.questions[2].id}`, + label: declarations.questions[2].legend, + renderComponent: DeclarationInput, + options: [ + { value: 'yes', label: 'Yes' }, + { value: 'no', label: 'No' }, + ], + validate: [required], + }, + { + fieldId: `declarations.${declarations.questions[3].id}`, + label: declarations.questions[3].legend, + renderComponent: DeclarationInput, + options: [ + { value: 'yes', label: 'Yes' }, + { value: 'no', label: 'No' }, + ], + validate: [required], + }, + { + fieldId: `declarations.${declarations.questions[4].id}`, + label: declarations.questions[4].legend, + renderComponent: DeclarationInput, + options: [ + { value: 'yes', label: 'Yes' }, + { value: 'no', label: 'No' }, + ], + validate: [required], + }, + { + fieldId: `declarations.${declarations.questions[5].id}`, + label: declarations.questions[5].legend, + renderComponent: DeclarationInput, + options: [ + { value: 'yes', label: 'Yes' }, + { value: 'no', label: 'No' }, + ], + validate: [required], + }, + { + fieldId: 'spacing-rev', + renderComponent: Spacing, + }, + { + fieldId: 'label-reviewers', + renderComponent: Label, + label: 'Reviewers', + }, + { + fieldId: 'label-rev-suggested', + renderComponent: SubLabel, + label: 'Suggested reviewers', + }, + { + fieldId: 'suggestions.reviewers.suggested', + renderComponent: TextField, + title: 'Suggested reviewers', + placeholder: 'Add reviewers names...', + format: joinComma, + parse: splitComma, + }, + { + fieldId: 'label-rev-Opposed', + renderComponent: SubLabel, + label: 'Opposed reviewers', + }, + { + fieldId: 'suggestions.reviewers.opposed', + renderComponent: TextField, + title: 'Opposed reviewers', + placeholder: 'Add opposed reviewers names...', + format: joinComma, + parse: splitComma, + }, + { + fieldId: 'label-Editors', + renderComponent: Label, + label: 'Editors', + }, + { + fieldId: 'label-editors-suggested', + renderComponent: SubLabel, + label: 'Suggested Editors', + }, + { + fieldId: 'suggestions.editors.suggested', + renderComponent: TextField, + title: 'Suggested editors', + placeholder: 'Add editors names...', + format: joinComma, + parse: splitComma, + }, + { + fieldId: 'label-editors-Opposed', + renderComponent: SubLabel, + label: 'Opposed Editors', + }, + { + fieldId: 'suggestions.editors.opposed', + renderComponent: TextField, + title: 'Opposed editors', + placeholder: 'Add opposed editors names...', + format: joinComma, + parse: splitComma, + }, + { + fieldId: 'spacing-funding', + renderComponent: Spacing, + }, + { + fieldId: 'notes.fundingAcknowledgement', + renderComponent: NoteEditor, + title: 'Funding body acknowledgement (required)', + placeholder: 'Enter an acknowledgment...', + validate: [required], + }, + { + fieldId: 'spacing-special', + renderComponent: Spacing, + }, + { + fieldId: 'notes.specialInstructions', + renderComponent: NoteEditor, + title: 'Special instructions (confidential)', + placeholder: 'Enter instructions for the editor…', + }, + { + fieldId: 'spacing-files', + renderComponent: Spacing, + }, + { + fieldId: 'label-files', + renderComponent: Label, + label: 'Upload supplementary materials', + }, + { + fieldId: 'files.supplementary', + label: 'Upload supplementary materials', + renderComponent: Supplementary, + }, + ], + }, + ], +} diff --git a/packages/xpub-faraday-server/src/AuthorBackend.js b/packages/xpub-faraday-server/src/AuthorBackend.js index 6f784e4c27a5e533542c647121dd84152c6634b4..e71de40326aa0371cc64ce690a142c77f568e6e1 100644 --- a/packages/xpub-faraday-server/src/AuthorBackend.js +++ b/packages/xpub-faraday-server/src/AuthorBackend.js @@ -1,14 +1,9 @@ const bodyParser = require('body-parser') const AuthorBackend = app => { - let authBearer = app.locals.passport.authenticate('bearer', { + const authBearer = app.locals.passport.authenticate('bearer', { session: false, }) - - if (process.env.NODE_ENV === 'test') { - authBearer = app.locals.passport.authenticate('anonymous') - } - app.post( '/api/fragments/:fragmentId/authors', authBearer, diff --git a/packages/xpub-faraday-server/src/AuthorBackend.test.js b/packages/xpub-faraday-server/src/AuthorBackend.test.js index 4431bbf9a5bc7513ba8e3eb95de7496d5388c04f..e01f686aa5b2a4312afe8c89c83dab86e5883f3f 100644 --- a/packages/xpub-faraday-server/src/AuthorBackend.test.js +++ b/packages/xpub-faraday-server/src/AuthorBackend.test.js @@ -7,14 +7,20 @@ const component = require('..') const express = require('express') const fixtures = require('./fixtures/fixtures') const passport = require('passport') -const AnonymousStrategy = require('passport-anonymous').Strategy +const BearerStrategy = require('passport-http-bearer').Strategy function makeApp(response) { const app = express() app.use(bodyParser.json()) // Passport strategies app.use(passport.initialize()) - passport.use('anonymous', new AnonymousStrategy()) + passport.use( + 'bearer', + new BearerStrategy((token, done) => + done(null, fixtures.user, { scope: 'all' }), + ), + ) + app.locals.passport = passport app.locals.models = { @@ -39,6 +45,7 @@ describe('Author Backend API', () => { error.status = 404 return makeApp(error) .post('/api/fragments/123/authors') + .set('Authorization', 'Bearer 123') .send(fixtures.author) .expect(404, '{"error":"Fragment not found"}') }) @@ -51,6 +58,7 @@ describe('Author Backend API', () => { error.details.push({ message: 'firstName is required' }) return makeApp(error) .post('/api/fragments/123/authors') + .set('Authorization', 'Bearer 123') .send(fixtures.invalidAuthor) .expect(404, '{"error":"firstName is required"}') }) @@ -58,12 +66,22 @@ describe('Author Backend API', () => { it('should return an error if an author already exists with the same email', () => makeApp(fixtures.fragment) .post('/api/fragments/123-valid-id/authors') + .set('Authorization', 'Bearer 123') .send(fixtures.author) .expect(400, '{"error":"Author with the same email already exists"}')) it('should return an error if there already is a submitting author', () => makeApp(fixtures.fragment) .post('/api/fragments/123-valid-id/authors') + .set('Authorization', 'Bearer 123') .send(fixtures.newSubmittingAuthor) .expect(400, '{"error":"There can only be one sumbitting author"}')) + + it('should return success', () => + makeApp(fixtures.fragment) + .post('/api/fragments/123-valid-id/authors') + .set('Authorization', 'Bearer 123') + .send(fixtures.newAuthor) + .expect(200, '') + .then(() => expect(fixtures.fragment.save).toHaveBeenCalled())) }) diff --git a/packages/xpub-faraday-server/src/fixtures/fixtures.js b/packages/xpub-faraday-server/src/fixtures/fixtures.js index d265352b1864c086b90baa457fb366fd7bcd5a0c..f570e534a22f13729c04e89d8fcc35846989c8ea 100644 --- a/packages/xpub-faraday-server/src/fixtures/fixtures.js +++ b/packages/xpub-faraday-server/src/fixtures/fixtures.js @@ -5,10 +5,21 @@ const author = { email: 'email@email.com', affiliation: 'University', country: '', - isCorresponding: true, + isCorresponding: false, isSubmitting: true, } +const newAuthor = { + firstName: 'Robert', + middleName: '', + lastName: 'Smith', + email: 'email_robert@email.com', + affiliation: 'University', + country: '', + isCorresponding: true, + isSubmitting: false, +} + const invalidAuthor = { firstName: '', middleName: '', @@ -41,9 +52,18 @@ const fragment = { save: jest.fn(), } +const user = { + type: 'user', + username: 'testuser', + email: 'test@example.com', + password: 'test', +} + module.exports = { author, invalidAuthor, fragment, newSubmittingAuthor, + newAuthor, + user, } diff --git a/packages/xpub-faraday/app/config/Logo.js b/packages/xpub-faraday/app/config/Logo.js new file mode 100644 index 0000000000000000000000000000000000000000..3f1557e5409e81d88ee5390e59679a898dd290e5 --- /dev/null +++ b/packages/xpub-faraday/app/config/Logo.js @@ -0,0 +1,7 @@ +import React from 'react' + +const Logo = ({ srcUrl }) => ( + <img alt="Hindawi" height="36" src={srcUrl} title="Hindawi" /> +) + +export default Logo diff --git a/packages/xpub-faraday/app/config/journal/metadata.js b/packages/xpub-faraday/app/config/journal/metadata.js index 7d662e97b2b267abc000756cf3b2056e80d1f562..a0dbaa538b1525826b7c0259d497302ef43e9516 100644 --- a/packages/xpub-faraday/app/config/journal/metadata.js +++ b/packages/xpub-faraday/app/config/journal/metadata.js @@ -1,5 +1,8 @@ +import React from 'react' +import Logo from '../Logo' + export default { issn: '2474-7394', - name: 'Hindawi Faraday', + name: <Logo srcUrl="/assets/hindawi-logo.png" />, logo: '/assets/hindawi-logo.png', } diff --git a/packages/xpub-faraday/app/config/journal/submit-wizard.js b/packages/xpub-faraday/app/config/journal/submit-wizard.js index 52adaeb0e650510b4187970a7fa6cbcec277f3be..23eb8239987366c78fb0757376d4b15d4d78cb89 100644 --- a/packages/xpub-faraday/app/config/journal/submit-wizard.js +++ b/packages/xpub-faraday/app/config/journal/submit-wizard.js @@ -28,6 +28,14 @@ const yesNoWithLabel = ({ label, ...rest }) => ( <YesOrNo {...rest} /> </div> ) +const Spacing = () => <div style={{ width: '100%', height: '15px' }} /> +const Label = ({ label }) => ( + <label + style={{ display: 'inline-block', marginTop: '15px', marginBottom: '5px' }} + > + <b>{label}</b> + </label> +) const journal = { label: 'Hindawi Faraday', @@ -43,20 +51,28 @@ export default { steps: [ { label: 'Journal details', - title: 'Journal & Field Selection', + title: '1. Journal & Field Selection', children: [ + { + fieldId: 'label-Journal', + renderComponent: Label, + label: 'Journal', + }, { fieldId: 'metadata.journal', renderComponent: Menu, - label: 'Journal', options: [journal], value: journal.value, validate: [required], }, + { + fieldId: 'label-Issue', + renderComponent: Label, + label: 'Issue', + }, { fieldId: 'metadata.issue', renderComponent: Menu, - label: 'Issue', options: issueTypes, validate: [required], }, @@ -64,7 +80,7 @@ export default { }, { label: 'Pre-submission checklist', - title: 'Pre-submission Checklist', + title: '2. Pre-submission Checklist', subtitle: 'Before moving forward make sure you have all the needed details prepared by reviewing and checking off the items on this list.', children: [ @@ -78,7 +94,7 @@ export default { }, { label: 'Manuscript & Authors Details', - title: 'Manuscript & Authors Details', + title: '3. Manuscript & Authors Details', subtitle: 'Please provide the details of all the authors of this manuscript....', children: [ @@ -88,13 +104,25 @@ export default { placeholder: 'Manuscript title', title: 'Manuscript title', }, + { + fieldId: 'spacing-title', + renderComponent: Spacing, + }, + { + fieldId: 'label-manuscriptType', + renderComponent: Label, + label: 'Manuscript Type', + }, { fieldId: 'metadata.type', renderComponent: Menu, - label: 'Manuscript type', options: manuscriptTypes, validate: [required], }, + { + fieldId: 'spacing-type', + renderComponent: Spacing, + }, { fieldId: 'metadata.abstract', renderComponent: AbstractEditor, @@ -102,11 +130,19 @@ export default { placeholder: 'Write an abstract', validate: [requiredBasedOnType], }, + { + fieldId: 'spacing-abstract', + renderComponent: Spacing, + }, { fieldId: 'authors', renderComponent: AuthorList, validate: [required], }, + { + fieldId: 'spacing-authors', + renderComponent: Spacing, + }, { fieldId: 'conflicts.hasConflicts', renderComponent: yesNoWithLabel, @@ -127,18 +163,33 @@ export default { }, { label: 'Files upload', - title: 'Manuscript Files Upload', + title: '4. Manuscript Files Upload', children: [ + { + fieldId: 'label-manuscript', + renderComponent: Label, + label: 'Main Manuscript', + }, { fieldId: 'files.manuscripts', label: 'Main Manuscript', renderComponent: Supplementary, }, + { + fieldId: 'label-supplementary', + renderComponent: Label, + label: 'Supplemental Files', + }, { fieldId: 'files.supplementary', label: 'Supplemental Files', renderComponent: Supplementary, }, + { + fieldId: 'label-cover', + renderComponent: Label, + label: 'Cover Letter', + }, { fieldId: 'files.coverLetter', label: 'Cover Letter', diff --git a/packages/xpub-faraday/app/config/journal/wizard-validators.js b/packages/xpub-faraday/app/config/journal/wizard-validators.js index 4f11c7640ccd08799e6a1b10aef91901552ad6f4..59ea36b4cbba46d62ca7600aac53afe911dc0c24 100644 --- a/packages/xpub-faraday/app/config/journal/wizard-validators.js +++ b/packages/xpub-faraday/app/config/journal/wizard-validators.js @@ -6,10 +6,17 @@ const requiredTypes = manuscriptTypes .filter(t => t.abstractRequired) .map(t => t.value) +const parseAbstract = value => { + if (value && value.replace('<p></p>', '').replace('<h1></h1>', '')) { + return undefined + } + return 'Required' +} + export const requiredBasedOnType = (value, formValues) => { if ( requiredTypes.includes(get(formValues, 'metadata.type')) && - isEmpty(get(formValues, 'metadata.abstract')) + (isEmpty(get(formValues, 'metadata.abstract')) || parseAbstract(value)) ) { return 'Required' } diff --git a/packages/xpub-faraday/app/index.html b/packages/xpub-faraday/app/index.html index 4210e6fed4fc2a8b610b816d684fc47fb77b3421..ea72df9a2e41b3adb3ef07b67a3400e4bdff7e21 100644 --- a/packages/xpub-faraday/app/index.html +++ b/packages/xpub-faraday/app/index.html @@ -2,6 +2,7 @@ <html> <head> <meta charset="utf-8"> + <title> Faraday </title> </head> <body> <div id="root"></div> diff --git a/packages/xpub-faraday/app/routes.js b/packages/xpub-faraday/app/routes.js index 525a7266e9c5701231d10709272c330c07ef3fed..0faa342e6fd6458e78f2a08d27cc5da1ab52da68 100644 --- a/packages/xpub-faraday/app/routes.js +++ b/packages/xpub-faraday/app/routes.js @@ -13,10 +13,7 @@ import { } from 'pubsweet-component-xpub-authentication/src/components' import DashboardPage from 'pubsweet-component-xpub-dashboard/src/components/DashboardPage' - -import { WizardPage } from 'pubsweet-component-wizard/src/components' - -// import { Wizard } from './component-wizard' +import WizardPage from 'pubsweet-component-wizard/src/components/WizardPage' const Routes = () => ( <App>