diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js index d11c7d479ecb15cc49cbfe9d7ef2938335e444ce..7a6e9d3081ce9516f048c621bfe731e3042c85ae 100644 --- a/packages/component-faraday-ui/src/PublonsTable.js +++ b/packages/component-faraday-ui/src/PublonsTable.js @@ -1,8 +1,8 @@ import React, { Fragment } from 'react' +import { get, last } from 'lodash' import styled from 'styled-components' import { th } from '@pubsweet/ui-toolkit' import { Button, Spinner } from '@pubsweet/ui' -import { get } from 'lodash' import { compose, withHandlers, withProps } from 'recompose' import { Label, OpenModal, Text, withFetching } from '../' @@ -83,11 +83,12 @@ export default compose( })), withHandlers({ onInviteReviewer: ({ onInvite }) => (reviewer, modalProps) => { + const names = reviewer.name.split(' ') const newReviewer = { email: reviewer.email, role: 'reviewer', - firstName: reviewer.name, - lastName: '', + firstName: names[0], + lastName: last(names), } onInvite(newReviewer, modalProps) }, diff --git a/packages/component-invite/src/routes/fragmentsInvitations/post.js b/packages/component-invite/src/routes/fragmentsInvitations/post.js index b921af96de1f0df4029615d9a7922685c8c5353c..823d25ac9409535ff4c28d7f3227bc216fdbe4e4 100644 --- a/packages/component-invite/src/routes/fragmentsInvitations/post.js +++ b/packages/component-invite/src/routes/fragmentsInvitations/post.js @@ -124,7 +124,7 @@ module.exports = models => async (req, res) => { const userHelper = new User({ UserModel }) const userData = req.body - const { firstName, lastName, isPublons } = userData + const { firstName = '', lastName = '', isPublons } = userData if (!services.checkForUndefinedParams(firstName, lastName)) { return res .status(400) @@ -133,7 +133,10 @@ module.exports = models => async (req, res) => { if (isPublons && process.env.PUBLONS_MOCK_EMAIL) { const mockEmail = process.env.PUBLONS_MOCK_EMAIL - userData.email = mockEmail.replace('__NAME__', `${firstName}.${lastName}`) + userData.email = mockEmail.replace( + '__NAME__', + `${firstName.trim()}.${lastName.trim()}`, + ) } const newUser = await userHelper.createUser({ diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index e40b6a0a6e26b4bb427b7fcd4ba824231b90fd71..04c7522838e9b4ca51a1a3ab5d9f9ece8c0e5b01 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -209,6 +209,22 @@ export default compose( getFragment(collection, fragment) getUsers() }, + getPublonsReviewers: ({ clearError, setFetching, setPublonsReviewers }) => ( + fragmentId, + errorFn, + ) => { + clearError() + setFetching(true) + getPublonsReviewers(fragmentId) + .then(res => { + setFetching(false) + setPublonsReviewers(res) + }) + .catch(e => { + setFetching(false) + handleError(errorFn)(e) + }) + }, }), withHandlers({ updateManuscript: ({ updateVersion, collection, fragment }) => data => @@ -418,27 +434,26 @@ export default compose( }), withHandlers({ onInvitePublonReviewer: ({ - collection, + setError, fragment, + collection, + clearError, + getPublonsReviewers, fetchUpdatedCollection, setFetching: setListFetching, - setError, - clearError, - }) => (values, { hideModal, setModalError, setFetching }) => { + }) => (reviewerData, { hideModal, setModalError, setFetching }) => { setFetching(true) inviteReviewer({ - reviewerData: values, + reviewerData, + isPublons: true, fragmentId: fragment.id, collectionId: collection.id, - isPublon: true, }) .then(() => { setFetching(false) hideModal() fetchUpdatedCollection() - getPublonsReviewers('plm') // fragment.id) - .then(r => console.log('dupa publons', r)) - .catch(handleError(setError)) + getPublonsReviewers('plm', setModalError) // fragment.id) }) .catch(err => { setFetching(false) @@ -477,12 +492,13 @@ export default compose( const { match, history, + setError, location, shouldReview, reviewerReports, setEditorInChief, clearCustomError, - setPublonsReviewers, + getPublonsReviewers, hasManuscriptFailure, fetchUpdatedCollection, currentUser: { @@ -491,9 +507,6 @@ export default compose( isHEToManuscript, permissions: { canInviteReviewers }, }, - setFetching, - setError, - clearError, } = this.props if (hasManuscriptFailure) { @@ -516,26 +529,7 @@ export default compose( ) if (canInviteReviewers) { - clearError() - setFetching(true) - getPublonsReviewers(fragmentId) - .then(res => { - setFetching(false) - setPublonsReviewers( - res.map(r => { - const names = r.name.split(' ') - return { - ...r, - firstName: names[0], - lastName: last(names), - } - }), - ) - }) - .catch(e => { - setFetching(false) - handleError(setError)(e) - }) + getPublonsReviewers(fragmentId, setError) } if (isInvitedHE) { diff --git a/packages/components-faraday/src/redux/reviewers.js b/packages/components-faraday/src/redux/reviewers.js index 9d2ee9b6333822535652d83f30b1802a21a879df..4cb9dd209e6d8d922a0e3ca394698743754b61c2 100644 --- a/packages/components-faraday/src/redux/reviewers.js +++ b/packages/components-faraday/src/redux/reviewers.js @@ -60,9 +60,9 @@ export const getCollectionReviewers = (collectionId, fragmentId) => dispatch => // #endregion export const inviteReviewer = ({ + fragmentId, reviewerData, collectionId, - fragmentId, isPublons = false, }) => create(`/collections/${collectionId}/fragments/${fragmentId}/invitations`, {