diff --git a/packages/component-faraday-ui/src/DownloadZipFiles.js b/packages/component-faraday-ui/src/DownloadZipFiles.js index 3244bb90c623ccfecf7441f86da5a76a1733214d..8e5d34d7c4251e31d7acc0efc995e8562554d40d 100644 --- a/packages/component-faraday-ui/src/DownloadZipFiles.js +++ b/packages/component-faraday-ui/src/DownloadZipFiles.js @@ -1,11 +1,6 @@ import React from 'react' -import { connect } from 'react-redux' import { Spinner } from '@pubsweet/ui' import { compose, withState } from 'recompose' -import { - getUserToken, - currentUserIsReviewer, -} from 'pubsweet-component-faraday-selectors' import { Item } from 'pubsweet-component-faraday-ui' import { withZipDownload } from './helpers' @@ -22,10 +17,6 @@ const DownloadZipFiles = ({ disabled, fetching, children, downloadFiles }) => ( ) export default compose( - connect((state, { collectionId }) => ({ - token: getUserToken(state), - isReviewer: currentUserIsReviewer(state, collectionId), - })), withState('fetching', 'setFetching', false), withZipDownload, )(DownloadZipFiles) diff --git a/packages/component-faraday-ui/src/DownloadZipFiles.md b/packages/component-faraday-ui/src/DownloadZipFiles.md index 82263d4563040a93ce1a5330497927de6dbd5bb9..05fe5d1b990eff67b4934f763aa4838aaab85467 100644 --- a/packages/component-faraday-ui/src/DownloadZipFiles.md +++ b/packages/component-faraday-ui/src/DownloadZipFiles.md @@ -4,10 +4,13 @@ Download manuscript package as zip const collection = {id: '', customId: ''}; const fragment = {id: ''}; + <DownloadZipFiles archiveName={`ID-${collection.customId}`} collectionId={collection.id} fragmentId={fragment.id} + isReviewer + token="abc-123" > <div>Download</div> </DownloadZipFiles> diff --git a/packages/component-faraday-ui/src/ManuscriptVersion.js b/packages/component-faraday-ui/src/ManuscriptVersion.js index f5d8d5493279292c9dc0b0565f3586d233e820d1..33de748b0e212aa6acd947fafa34550f3f9ba593 100644 --- a/packages/component-faraday-ui/src/ManuscriptVersion.js +++ b/packages/component-faraday-ui/src/ManuscriptVersion.js @@ -1,7 +1,6 @@ import React from 'react' import { get } from 'lodash' import { Menu } from '@pubsweet/ui' -import { withRouter } from 'react-router-dom' import { compose, withHandlers, withProps } from 'recompose' const ManuscriptVersion = ({ @@ -23,7 +22,6 @@ const ManuscriptVersion = ({ ) export default compose( - withRouter, withProps(({ collection = {} }) => ({ fragments: get(collection, 'fragments', []), })), diff --git a/packages/component-faraday-ui/src/ManuscriptVersion.md b/packages/component-faraday-ui/src/ManuscriptVersion.md index d740afec5d1308b0bdb3482d46a8dd7e4f7880ad..00e12ce334886136eb8308dd2c6b5fdc7a018e68 100644 --- a/packages/component-faraday-ui/src/ManuscriptVersion.md +++ b/packages/component-faraday-ui/src/ManuscriptVersion.md @@ -3,11 +3,17 @@ Manuscript version component ```js const history = { - push: () => alert('go to version') + push: v => console.log('go to version -> ', v) }; const fragment={}; -const collection={}; +const collection={ + fragments: ['1','2'], +}; -<ManuscriptVersion collection={collection} fragment={fragment} /> +<ManuscriptVersion + collection={collection} + history={history} + fragment={fragment} + /> ``` diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js index 5ffa60c3dbc7dc64255862afefaab56ab1227258..ba3190e450b131c1e7a15d397502a421d2812891 100644 --- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js +++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.js @@ -1,15 +1,7 @@ import React from 'react' import { get } from 'lodash' -import { connect } from 'react-redux' import { DateParser } from '@pubsweet/ui' -import { withRouter } from 'react-router-dom' import { compose, withHandlers } from 'recompose' -import { - canMakeDecision, - canMakeRecommendation, - canEditManuscript, - canOverrideTechnicalChecks, -} from 'pubsweet-component-faraday-selectors/src' import { Row, @@ -17,20 +9,21 @@ import { Text, ActionLink, IconButton, - DownloadZipFiles, PreviewFile, + DownloadZipFiles, ManuscriptVersion, } from 'pubsweet-component-faraday-ui' const ManuscriptDetailsTop = ({ history, - getSignedUrl, - collection = {}, - fragment = {}, goToEdit, + getSignedUrl, canEditManuscript, goToTechnicalCheck, canOverrideTechChecks, + fragment = {}, + collection = {}, + currentUser: { isReviewer, token }, }) => ( <Row alignItems="center" mb={1}> <Item alignItems="center" justify="flex-start"> @@ -69,25 +62,24 @@ const ManuscriptDetailsTop = ({ archiveName={`ID-${collection.customId}`} collectionId={collection.id} fragmentId={fragment.id} + isReviewer={isReviewer} + token={token} > <IconButton icon="download" iconSize={2} mr={3} secondary /> </DownloadZipFiles> <DateParser durationThreshold={0} timestamp={fragment.submitted || ''}> {timestamp => <Text mr={1}>Updated on {timestamp}</Text>} </DateParser> - <ManuscriptVersion collection={collection} fragment={fragment} /> + <ManuscriptVersion + collection={collection} + fragment={fragment} + history={history} + /> </Item> </Row> ) export default compose( - withRouter, - connect((state, { collection, fragment }) => ({ - canMakeDecision: canMakeDecision(state, collection, fragment), - canMakeRecommendation: canMakeRecommendation(state, collection, fragment), - canEditManuscript: canEditManuscript(state, collection, fragment), - canOverrideTechChecks: canOverrideTechnicalChecks(state, collection), - })), withHandlers({ goToEdit: ({ history }) => (collection, fragment) => () => { history.push( diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md index f4a1a46f7c94ed7eaec8a46e95e7af124af4860c..83b26fc585d2bd7fa43dc8a2e546e57bf3bda120 100644 --- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md +++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptDetailsTop.md @@ -6,10 +6,17 @@ const history = { }; const fragment={}; const collection={}; +const currentUser = { + isReviewer: true, + token: 'abc-123', +}; <ManuscriptDetailsTop collection={collection} + currentUser={currentUser} fragment={fragment} history={history} + canOverrideTechChecks + canEditManuscript /> ``` diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index 02f391c2d6fffc547f50901a81aed7d9bce58aa5..037e692e0e83631cdc689f4f96dc583f61e9cf83 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -13,25 +13,28 @@ const ManuscriptLayout = ({ currentUser, editorInChief, canMakeRevision, - editorialRecommendations, hasResponseToReviewers, + editorialRecommendations, journal = {}, - project = {}, - version = {}, + collection = {}, + fragment = {}, + permissions, }) => ( <Root> - {!isEmpty(project) && !isEmpty(version) ? ( + {!isEmpty(collection) && !isEmpty(fragment) ? ( <Fragment> <ManuscriptDetailsTop - collection={project} - fragment={version} + collection={collection} + currentUser={currentUser} + fragment={fragment} getSignedUrl={getSignedUrl} history={history} + {...permissions} /> <ManuscriptHeader - collection={project} + collection={collection} editorInChief={editorInChief} - fragment={version} + fragment={fragment} journal={journal} /> </Fragment> diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index b09fe2d5c3a1b7491b7ad99e394f68cb0116f7af..88f14ae12f0b56c6cf00ef861628351e56b5f41e 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -30,7 +30,15 @@ import { getHandlingEditors, selectHandlingEditors, } from 'pubsweet-components-faraday/src/redux/editors' -import { canMakeRevision } from 'pubsweet-component-faraday-selectors/src' +import { + getUserToken, + canMakeRevision, + canMakeDecision, + canEditManuscript, + canMakeRecommendation, + currentUserIsReviewer, + canOverrideTechnicalChecks, +} from 'pubsweet-component-faraday-selectors' import ManuscriptLayout from './ManuscriptLayout' import { parseSearchParams, redirectToError } from './utils' @@ -49,8 +57,8 @@ export default compose( currentUser: selectCurrentUser(state), handlingEditors: selectHandlingEditors(state), hasManuscriptFailure: hasManuscriptFailure(state), - version: selectFragment(state, match.params.version), - project: selectCollection(state, match.params.project), + fragment: selectFragment(state, match.params.version), + collection: selectCollection(state, match.params.project), editorialRecommendations: selectEditorialRecommendations( state, match.params.version, @@ -66,11 +74,22 @@ export default compose( updateVersion: actions.updateFragment, }, ), - connect((state, { project, version }) => ({ - canMakeRevision: canMakeRevision(state, project, version), + connect((state, { currentUser, collection, fragment }) => ({ + currentUser: { + ...currentUser, + token: getUserToken(state), + isReviewer: currentUserIsReviewer(state), + }, + canMakeRevision: canMakeRevision(state, collection, fragment), + permissions: { + canMakeDecision: canMakeDecision(state, collection, fragment), + canEditManuscript: canEditManuscript(state, collection, fragment), + canOverrideTechChecks: canOverrideTechnicalChecks(state, collection), + canMakeRecommendation: canMakeRecommendation(state, collection, fragment), + }, })), - ConnectPage(({ currentUser, handlingEditors, project }) => { - const he = get(project, 'handlingEditor') + ConnectPage(({ currentUser, handlingEditors, collection }) => { + const he = get(collection, 'handlingEditor') if ( !he && !handlingEditors.length && @@ -81,9 +100,9 @@ export default compose( return [] }), withHandlers({ - updateManuscript: ({ updateVersion, project, version }) => data => - updateVersion(project, { - id: version.id, + updateManuscript: ({ updateVersion, collection, fragment }) => data => + updateVersion(collection, { + id: fragment.id, ...data, }), setEditorInChief: ({ setEiC }) => eic => { @@ -130,9 +149,9 @@ export default compose( ) }, }), - withProps(({ version }) => ({ + withProps(({ fragment }) => ({ hasResponseToReviewers: - !isEmpty(get(version, 'files.responseToReviewers')) || - get(version, 'commentsToReviewers'), + !isEmpty(get(fragment, 'files.responseToReviewers')) || + get(fragment, 'commentsToReviewers'), })), )(ManuscriptLayout) diff --git a/packages/styleguide/src/Wrapper.js b/packages/styleguide/src/Wrapper.js index 467e2f5c80cdf9509efa625e430e043a56658957..b7641fe72a28e8c036b9fedafa11bf4160950165 100644 --- a/packages/styleguide/src/Wrapper.js +++ b/packages/styleguide/src/Wrapper.js @@ -6,6 +6,7 @@ import hindawiTheme from 'hindawi-theme' import { createLogger } from 'redux-logger' import { ThemeProvider } from 'styled-components' import { client } from 'pubsweet-component-modal' +import { BrowserRouter as Router } from 'react-router-dom' import { createStore, combineReducers, applyMiddleware } from 'redux' import withDragDropContext from './withDragDropContext' @@ -23,9 +24,11 @@ class Wrapper extends Component { render() { return ( <Provider store={store}> - <ThemeProvider theme={hindawiTheme}> - {this.props.children} - </ThemeProvider> + <Router> + <ThemeProvider theme={hindawiTheme}> + {this.props.children} + </ThemeProvider> + </Router> </Provider> ) }