From 02193bc105176969142d270358b9929c102ac7e2 Mon Sep 17 00:00:00 2001 From: h-mihail <33.mihail@gmail.com> Date: Thu, 4 Oct 2018 17:17:41 +0300 Subject: [PATCH] feat(PublonsTable):front-end --- .../component-faraday-ui/src/PublonsTable.js | 12 +++----- .../component-faraday-ui/src/PublonsTable.md | 30 +++++++++---------- packages/component-faraday-ui/src/index.js | 1 + .../src/components/ManuscriptLayout.js | 2 ++ .../src/components/ManuscriptPage.js | 22 ++++++++++++++ .../components-faraday/src/redux/reviewers.js | 8 ++++- 6 files changed, 51 insertions(+), 24 deletions(-) diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js index 073719bc4..2ab456ff5 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 dea96012d..f692c2e47 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 88eb9e4be..29d3bc88b 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 0a4da8cc2..ccd14fbcf 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 7c2839e59..f63d69005 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 7542b980d..9d2ee9b63 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 -- GitLab