diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js index 073719bc489c500f4f40004b1e05b9cc9bcfef7e..2ab456ff5231d0b7a79171bbd0c6691642d71c0b 100644 --- a/packages/component-faraday-ui/src/PublonsTable.js +++ b/packages/component-faraday-ui/src/PublonsTable.js @@ -5,7 +5,7 @@ import { Button } from '@pubsweet/ui' import { get } from 'lodash' import { compose, withHandlers } from 'recompose' -import { Label, Text, OpenModal, withFetching } from '../' +import { Label, OpenModal, withFetching } from '../' const PublonsTable = ({ reviewers, @@ -32,19 +32,15 @@ const PublonsTable = ({ <tbody> {reviewers.map(reviewer => ( <TableRow key={reviewer.id}> - <td> - <Text>{`${get(reviewer, 'publishingName', '')}`}</Text> - </td> - <td> - <Text>{`${get(reviewer, 'recentOrganizations.name', '')}`}</Text> - </td> + <td>{`${get(reviewer, 'publishingName', '')}`}</td> + <td>{`${get(reviewer, 'recentOrganizations.name', '')}`}</td> <td>{`${get(reviewer, 'numVerifiedReviews', '')}`}</td> <HiddenCell> <OpenModal + confirmText="Invite" isFetching={isFetching} onConfirm={modalProps => onInviteReviewer(reviewer, modalProps)} setFetching={setFetching} - subtitle={reviewer.email} title="Send invitation to review?" > {showModal => ( diff --git a/packages/component-faraday-ui/src/PublonsTable.md b/packages/component-faraday-ui/src/PublonsTable.md index dea96012db135aaf09fa764ef248557aee55caf9..f692c2e4740672589b4ff386c06e1f13c180315e 100644 --- a/packages/component-faraday-ui/src/PublonsTable.md +++ b/packages/component-faraday-ui/src/PublonsTable.md @@ -4,36 +4,36 @@ A list of publon reviewers. const reviewers = [ { id: 0, - email: 'asd@asddsda.com', - publishingName: 'Vlad Corduneanu', + email: 'email1@email.com', + publishingName: 'Name1', recentOrganizations: { - name: 'Facultatea Tehnica Iasi' + name: 'Org1' }, - numVerifiedReviews: '123' + numVerifiedReviews: '100' }, { - id: 2, - email: 'asd@asddsda.com', - publishingName: 'Dani Mocanu', + id: 1, + email: 'email2@email.com', + publishingName: 'Name2', recentOrganizations: { - name: 'UAIC' + name: 'Org2' }, - numVerifiedReviews: '222' + numVerifiedReviews: '200' }, { - id: 3, - email: 'asd@asddsda.com', - publishingName: 'Gica Hagi', + id: 2, + email: 'email3@email.com', + publishingName: 'Name3', recentOrganizations: { - name: 'Pixar' + name: 'Org3' }, - numVerifiedReviews: '100' + numVerifiedReviews: '300' }, ]; <PublonsTable reviewers={reviewers} onInviteReviwer={(reviewer, modalProps) => { console.log('the reviewer', reviewer) + modalProps.setModalError('avem eroare boss') }}/> ``` -x \ No newline at end of file diff --git a/packages/component-faraday-ui/src/index.js b/packages/component-faraday-ui/src/index.js index 88eb9e4be5129fb6851cb9f74ff01c2e35c24301..29d3bc88b846622a295920a4db92515f7cde644b 100644 --- a/packages/component-faraday-ui/src/index.js +++ b/packages/component-faraday-ui/src/index.js @@ -30,6 +30,7 @@ export { default as Pagination } from './Pagination' export { default as PersonInfo } from './PersonInfo' export { default as PersonInvitation } from './PersonInvitation' export { default as PreviewFile } from './PreviewFile' +export { default as PublonsTable } from './PublonsTable' export { default as RadioWithComments } from './RadioWithComments' export { default as ReviewerReport } from './ReviewerReport' export { default as ReviewersTable } from './ReviewersTable' diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index 0a4da8cc2036d1e8b0d565ba94c966345f595ac9..ccd14fbcf99920eb109c15ab6f63da49bbe3a6a9 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -62,6 +62,7 @@ const ManuscriptLayout = ({ shouldReview, submittedOwnRecommendation, reviewerReports, + onInvitePublonReviewer, }) => ( <Root pb={30}> {!isEmpty(collection) && !isEmpty(fragment) ? ( @@ -166,6 +167,7 @@ const ManuscriptLayout = ({ <ReviewerDetails fragment={fragment} invitations={invitationsWithReviewers} + onInvitePublonReviewer={onInvitePublonReviewer} onInviteReviewer={onInviteReviewer} onResendReviewerInvite={onResendReviewerInvite} onRevokeReviewerInvite={onRevokeReviewerInvite} diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index 7c2839e5966a45b40b6d210f8aef301e014403ea..f63d690050eb61b54cb77244efc1a5b74d50eea2 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -325,6 +325,28 @@ export default compose( handleError(setModalError)(err) }) }, + onInvitePublonReviewer: ({ + collection, + fragment, + fetchUpdatedCollection, + }) => (values, { hideModal, setModalError, setFetching }) => { + setFetching(true) + inviteReviewer({ + reviewerData: values, + fragmentId: fragment.id, + collectionId: collection.id, + isPublon: true, + }) + .then(() => { + setFetching(false) + hideModal() + fetchUpdatedCollection() + }) + .catch(err => { + setFetching(false) + handleError(setModalError)(err) + }) + }, onResendReviewerInvite: ({ fragment, collection, diff --git a/packages/components-faraday/src/redux/reviewers.js b/packages/components-faraday/src/redux/reviewers.js index 7542b980da4cdb1aaab21256f0b85bca2cabfb3d..9d2ee9b6333822535652d83f30b1802a21a879df 100644 --- a/packages/components-faraday/src/redux/reviewers.js +++ b/packages/components-faraday/src/redux/reviewers.js @@ -59,10 +59,16 @@ export const getCollectionReviewers = (collectionId, fragmentId) => dispatch => ) // #endregion -export const inviteReviewer = ({ reviewerData, collectionId, fragmentId }) => +export const inviteReviewer = ({ + reviewerData, + collectionId, + fragmentId, + isPublons = false, +}) => create(`/collections/${collectionId}/fragments/${fragmentId}/invitations`, { ...reviewerData, role: 'reviewer', + isPublons, }) // #region Actions - invitations