From bd1971e388c21e19c0b9c1903d9965446496b15a Mon Sep 17 00:00:00 2001 From: Mihail Hagiu <mihail.hagiu@thinslices.com> Date: Mon, 8 Oct 2018 12:59:22 +0300 Subject: [PATCH] feat(publons-reviewers): publons endpoint on front-end + --- .../component-faraday-ui/src/PublonsTable.js | 5 +- .../src/contextualBoxes/ReviewerDetails.js | 59 +++++++------------ .../src/components/ManuscriptLayout.js | 2 + .../src/components/ManuscriptPage.js | 2 + .../components-faraday/src/redux/reviewers.js | 3 + 5 files changed, 31 insertions(+), 40 deletions(-) diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js index 964baad4a..015f7e76e 100644 --- a/packages/component-faraday-ui/src/PublonsTable.js +++ b/packages/component-faraday-ui/src/PublonsTable.js @@ -3,7 +3,7 @@ import styled from 'styled-components' import { th } from '@pubsweet/ui-toolkit' import { Button } from '@pubsweet/ui' import { get } from 'lodash' -import { compose, withHandlers } from 'recompose' +import { compose, withHandlers, withProps } from 'recompose' import { Label, OpenModal, Text, withFetching } from '../' @@ -64,6 +64,9 @@ const PublonsTable = ({ export default compose( withFetching, + withProps(({ reviewers = [] }) => ({ + reviewers, + })), withHandlers({ onInviteReviewer: ({ onInviteReviwer }) => (reviewer, modalProps) => { onInviteReviwer(reviewer, modalProps) diff --git a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js index d1a1b4816..aae2c213f 100644 --- a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js +++ b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js @@ -20,41 +20,12 @@ import { withFileDownload, } from '../' -const publons = [ - { - id: 0, - email: 'email1@email.com', - publishingName: 'Name1', - recentOrganizations: { - name: 'Org1', - }, - numVerifiedReviews: '100', - }, - { - id: 1, - email: 'email2@email.com', - publishingName: 'Name2', - recentOrganizations: { - name: 'Org2', - }, - numVerifiedReviews: '200', - }, - { - id: 2, - email: 'email3@email.com', - publishingName: 'Name3', - recentOrganizations: { - name: 'Org3', - }, - numVerifiedReviews: '300', - }, -] - const ReviewerDetails = ({ journal, reports, fragment, invitations, + publons, previewFile, downloadFile, canInviteReviewers, @@ -122,7 +93,9 @@ const ReviewerDetails = ({ {publons.length === 0 && ( <Text align="center">No suggestions yet.</Text> )} - <PublonsTable reviewers={publons} /> + {console.log('------------------------', publons) || ( + <PublonsTable reviewers={publons} /> + )} </Fragment> )} {selectedTab === 2 && ( @@ -153,14 +126,22 @@ const ReviewerDetails = ({ export default compose( withFilePreview, withFileDownload, - withProps(({ invitations = [], reviewerReports = [], currentUser }) => ({ - token: get(currentUser, 'token', ''), - invitations: invitations.map(i => ({ - ...i, - review: reviewerReports.find(r => r.userId === i.userId), - })), - reports: reviewerReports.filter(r => r.submittedOn), - })), + withProps( + ({ + invitations = [], + publons = [], + reviewerReports = [], + currentUser, + }) => ({ + token: get(currentUser, 'token', ''), + publons, + invitations: invitations.map(i => ({ + ...i, + review: reviewerReports.find(r => r.userId === i.userId), + })), + reports: reviewerReports.filter(r => r.submittedOn), + }), + ), withProps(({ currentUser }) => ({ canInviteReviewers: get(currentUser, 'permissions.canInviteReviewers'), canViewReviewersDetails: get( diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index 9fb417e47..f2bc74eb3 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -56,6 +56,7 @@ const ManuscriptLayout = ({ onRevokeReviewerInvite, toggleReviewerResponse, invitationsWithReviewers, + publonReviewers, reviewerResponseExpanded, pendingOwnRecommendation, toggleReviewerRecommendations, @@ -176,6 +177,7 @@ const ManuscriptLayout = ({ currentUser={currentUser} fragment={fragment} getSignedUrl={getSignedUrl} + publons={publonReviewers} invitations={invitationsWithReviewers} journal={journal} onInvitePublonReviewer={onInvitePublonReviewer} diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index 8105d1f7d..93ec5ed2e 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -25,6 +25,7 @@ import { inviteReviewer, revokeReviewer, reviewerDecision, + getPublonReviewers, } from 'pubsweet-components-faraday/src/redux/reviewers' import { hasManuscriptFailure, @@ -167,6 +168,7 @@ export default compose( state, get(fragment, 'id', ''), ), + publonReviewers: getPublonReviewers(get(fragment, 'id', ''))(state), }), ), ConnectPage(({ currentUser }) => { diff --git a/packages/components-faraday/src/redux/reviewers.js b/packages/components-faraday/src/redux/reviewers.js index 9d2ee9b63..967de18d0 100644 --- a/packages/components-faraday/src/redux/reviewers.js +++ b/packages/components-faraday/src/redux/reviewers.js @@ -57,6 +57,9 @@ export const getCollectionReviewers = (collectionId, fragmentId) => dispatch => apiGet( `/collections/${collectionId}/fragments/${fragmentId}/invitations?role=reviewer`, ) + +export const getPublonReviewers = fragmentId => dispatch => + apiGet(`/fragments/${fragmentId}/publons`) // #endregion export const inviteReviewer = ({ -- GitLab