From f6d16a961d0d1200c8e88018df3db060da3e3626 Mon Sep 17 00:00:00 2001
From: Anca Ursachi <anca.ursachi@thinslices.com>
Date: Tue, 6 Nov 2018 16:12:23 +0200
Subject: [PATCH] docs(component-faraday-ui):

---
 packages/component-faraday-ui/src/Logo.js     | 11 ++++-
 .../src/ManuscriptCard.js                     | 15 ++++++-
 .../src/ManuscriptCard.md                     | 40 -------------------
 .../component-faraday-ui/src/Pagination.js    |  4 +-
 .../component-faraday-ui/src/PersonInfo.js    | 27 +++++++------
 .../src/ReviewerBreakdown.js                  | 26 +++++++++---
 .../src/ReviewerReport.js                     | 32 +++++++++++++--
 .../src/ReviewerReportAuthor.js               | 27 +++++++++++++
 8 files changed, 115 insertions(+), 67 deletions(-)

diff --git a/packages/component-faraday-ui/src/Logo.js b/packages/component-faraday-ui/src/Logo.js
index 338312793..ddc7b7b7a 100644
--- a/packages/component-faraday-ui/src/Logo.js
+++ b/packages/component-faraday-ui/src/Logo.js
@@ -2,8 +2,9 @@
 
 import React from 'react'
 import { get } from 'lodash'
+import PropTypes from 'prop-types'
 
-const Logo = ({ src, onClick, title, height = 36, ...rest }) => (
+const Logo = ({ src, onClick, title, height, ...rest }) => (
   <img
     alt={title}
     data-test-id={get(rest, 'data-test-id', 'journal-logo')}
@@ -14,4 +15,12 @@ const Logo = ({ src, onClick, title, height = 36, ...rest }) => (
   />
 )
 
+Logo.propTypes = {
+  /** Height of the logo. */
+  height: PropTypes.number,
+}
+
+Logo.defaultProps = {
+  height: 36,
+}
 export default Logo
diff --git a/packages/component-faraday-ui/src/ManuscriptCard.js b/packages/component-faraday-ui/src/ManuscriptCard.js
index 17e9e1763..f6647ffb9 100644
--- a/packages/component-faraday-ui/src/ManuscriptCard.js
+++ b/packages/component-faraday-ui/src/ManuscriptCard.js
@@ -5,6 +5,7 @@ import { th } from '@pubsweet/ui-toolkit'
 import { withJournal } from 'xpub-journal'
 import { H3, H4, DateParser } from '@pubsweet/ui'
 import { compose, withHandlers, setDisplayName, withProps } from 'recompose'
+import PropTypes from 'prop-types'
 
 import {
   Tag,
@@ -27,8 +28,8 @@ const ManuscriptCard = ({
   isFetching,
   onCardClick,
   canViewReports,
-  fragment = {},
-  manuscriptType = {},
+  fragment,
+  manuscriptType,
   collection: { visibleStatus = 'Draft', handlingEditor, customId, id: collId },
 }) => {
   const {
@@ -137,6 +138,16 @@ export default compose(
   setDisplayName('ManuscriptCard'),
 )(ManuscriptCard)
 
+ManuscriptCard.propTypes = {
+  manuscriptType: PropTypes.oneOfType(PropTypes.object),
+  fragment: PropTypes.oneOfType(PropTypes.object).isRequired,
+  collection: PropTypes.oneOfType(PropTypes.object).isRequired,
+}
+
+ManuscriptCard.defaultProps = {
+  manuscriptType: {},
+}
+
 // #region styles
 const MainContainer = styled.div`
   justify-content: flex-start;
diff --git a/packages/component-faraday-ui/src/ManuscriptCard.md b/packages/component-faraday-ui/src/ManuscriptCard.md
index aea9f0e6c..e8d9bccea 100644
--- a/packages/component-faraday-ui/src/ManuscriptCard.md
+++ b/packages/component-faraday-ui/src/ManuscriptCard.md
@@ -40,46 +40,6 @@ const authors = [
     firstName: 'Barrack 4',
     lastName: 'Obama',
   },
-  {
-    email: 'barrack.obama@gmail5.com',
-    firstName: 'Barrack 5',
-    lastName: 'Obama',
-  },
-  {
-    email: 'barrack.obama@gmail6.com',
-    firstName: 'Barrack 6',
-    lastName: 'Obama',
-  },
-  {
-    email: 'barrack.obama@gmail7.com',
-    firstName: 'Barrack 7',
-    lastName: 'Obama',
-  },
-  {
-    email: 'barrack.obama@gmail8.com',
-    firstName: 'Barrack 8',
-    lastName: 'Obama',
-  },
-  {
-    email: 'barrack.obama@gmail9.com',
-    firstName: 'Barrack 9',
-    lastName: 'Obama',
-  },
-  {
-    email: 'barrack.obama@gmail10.com',
-    firstName: 'Barrack 10',
-    lastName: 'Obama',
-  },
-  {
-    email: 'barrack.obama@gmail11.com',
-    firstName: 'Barrack 11',
-    lastName: 'Obama',
-  },
-  {
-    email: 'barrack.obama@gmail12.com',
-    firstName: 'Barrack 12',
-    lastName: 'Obama',
-  },
 ]
 
 const collection = {
diff --git a/packages/component-faraday-ui/src/Pagination.js b/packages/component-faraday-ui/src/Pagination.js
index 2078907f8..c0f38b45a 100644
--- a/packages/component-faraday-ui/src/Pagination.js
+++ b/packages/component-faraday-ui/src/Pagination.js
@@ -51,10 +51,10 @@ const PaginationComponent = ({
   </Root>
 )
 
-export const Pagination = ({ paginatedItems, children, ...props }) => (
+export const Pagination = ({ Items, children, ...props }) => (
   <Fragment>
     <PaginationComponent {...props} />
-    {typeof children === 'function' && children(paginatedItems, props)}
+    {typeof children === 'function' && children(Items, props)}
   </Fragment>
 )
 
diff --git a/packages/component-faraday-ui/src/PersonInfo.js b/packages/component-faraday-ui/src/PersonInfo.js
index 7d9ce203b..bca7e16d1 100644
--- a/packages/component-faraday-ui/src/PersonInfo.js
+++ b/packages/component-faraday-ui/src/PersonInfo.js
@@ -1,19 +1,10 @@
 import React from 'react'
-import PropTypes from 'prop-types'
 import { withCountries } from 'pubsweet-component-faraday-ui'
-
+import PropTypes from 'prop-types'
 import { Text, Row, Label, Item } from './'
 
-const defaultPerson = {
-  email: '',
-  firstName: '',
-  lastName: '',
-  affiliation: '',
-  country: '',
-}
-
 const PersonInfo = ({
-  person: { email, firstName, lastName, affiliation, country } = defaultPerson,
+  person: { email, firstName, lastName, affiliation, country },
   countryLabel,
 }) => (
   <Row>
@@ -39,8 +30,8 @@ const PersonInfo = ({
     </Item>
   </Row>
 )
-
-PersonInfo.proTypes = {
+PersonInfo.propTypes = {
+  /** Person with information */
   person: PropTypes.shape({
     email: PropTypes.string,
     firstName: PropTypes.string,
@@ -50,4 +41,14 @@ PersonInfo.proTypes = {
   }),
 }
 
+PersonInfo.defaultProps = {
+  person: {
+    email: '',
+    firstName: '',
+    lastName: '',
+    affiliation: '',
+    country: '',
+  },
+}
+
 export default withCountries(PersonInfo)
diff --git a/packages/component-faraday-ui/src/ReviewerBreakdown.js b/packages/component-faraday-ui/src/ReviewerBreakdown.js
index 7d257102a..66aa094b0 100644
--- a/packages/component-faraday-ui/src/ReviewerBreakdown.js
+++ b/packages/component-faraday-ui/src/ReviewerBreakdown.js
@@ -1,10 +1,11 @@
 import React from 'react'
-import { get } from 'lodash'
+// import { get } from 'lodash'
 import { compose, withHandlers, withProps } from 'recompose'
-
+import PropTypes from 'prop-types'
 import { Text, Row } from './'
 
-const ReviewerBreakdown = ({ getReportBreakdown }) => getReportBreakdown()
+const ReviewerBreakdown = ({ getReportBreakdown, fragment }) =>
+  getReportBreakdown()
 
 const roleFilter = role => i => i.role === role
 const submittedFilter = r => r.review && r.review.submittedOn
@@ -18,9 +19,9 @@ const reviewerReduce = (acc, r) => ({
 })
 
 export default compose(
-  withProps(({ fragment }) => ({
-    invitations: get(fragment, 'invitations', []),
-    recommendations: get(fragment, 'recommendations', []),
+  withProps(({ fragment: { invitations = [], recommendations = [] } }) => ({
+    invitations,
+    recommendations,
   })),
   withHandlers({
     getReportBreakdown: ({ invitations, recommendations, ...rest }) => () => {
@@ -62,3 +63,16 @@ export default compose(
     },
   }),
 )(ReviewerBreakdown)
+
+ReviewerBreakdown.propTypes = {
+  fragment: PropTypes.shape({
+    invitations: PropTypes.arrayOf(PropTypes.object),
+    recommendations: PropTypes.arrayOf(PropTypes.object),
+  }),
+}
+ReviewerBreakdown.defaultProps = {
+  fragment: {
+    invitations: [],
+    recommendations: [],
+  },
+}
diff --git a/packages/component-faraday-ui/src/ReviewerReport.js b/packages/component-faraday-ui/src/ReviewerReport.js
index 12391694d..6eb95dc54 100644
--- a/packages/component-faraday-ui/src/ReviewerReport.js
+++ b/packages/component-faraday-ui/src/ReviewerReport.js
@@ -4,19 +4,20 @@ import { withProps } from 'recompose'
 import styled from 'styled-components'
 import { th } from '@pubsweet/ui-toolkit'
 import { DateParser } from '@pubsweet/ui'
-
+import PropTypes from 'prop-types'
 import { Label, Item, FileItem, Row, Text } from './'
 
 const ReviewerReport = ({
   onPreview,
   onDownload,
   reportFile,
+  journal,
   publicReport,
   privateReport,
   reviewerName,
   reviewerIndex,
   recommendation,
-  showOwner = false,
+  showOwner,
   report: { submittedOn },
 }) => (
   <Root>
@@ -76,7 +77,7 @@ const ReviewerReport = ({
   </Root>
 )
 
-export default withProps(({ report, journal: { recommendations = [] } }) => ({
+export default withProps(({ report, journal: { recommendations } }) => ({
   recommendation: get(
     recommendations.find(r => r.value === report.recommendation),
     'label',
@@ -91,6 +92,31 @@ export default withProps(({ report, journal: { recommendations = [] } }) => ({
   )}`,
 }))(ReviewerReport)
 
+ReviewerReport.propTypes = {
+  /** It's true when you want to appear the reviewer name */
+  showOwner: PropTypes.bool,
+  /** Reviewers reports */
+  report: PropTypes.shape({
+    id: PropTypes.string,
+    userId: PropTypes.string,
+    comments: PropTypes.arrayOf(PropTypes.object),
+    createdOn: PropTypes.number,
+    updatedOn: PropTypes.number,
+    submittedOn: PropTypes.number,
+    recommendation: PropTypes.string,
+    recommendationType: PropTypes.string,
+  }),
+  /** The reviewers recommendations */
+  journal: PropTypes.shape({
+    recommendations: PropTypes.arrayOf(PropTypes.object),
+  }),
+}
+
+ReviewerReport.defaultProps = {
+  showOwner: false,
+  report: undefined,
+  journal: { recommendation: [] },
+}
 // #region styles
 const Root = styled.div`
   background-color: ${th('colorBackgroundHue')};
diff --git a/packages/component-faraday-ui/src/ReviewerReportAuthor.js b/packages/component-faraday-ui/src/ReviewerReportAuthor.js
index 4df5745b8..d1530006d 100644
--- a/packages/component-faraday-ui/src/ReviewerReportAuthor.js
+++ b/packages/component-faraday-ui/src/ReviewerReportAuthor.js
@@ -4,6 +4,7 @@ import { withProps, compose } from 'recompose'
 import styled from 'styled-components'
 import { th } from '@pubsweet/ui-toolkit'
 import { DateParser } from '@pubsweet/ui'
+import PropTypes from 'prop-types'
 
 import {
   Label,
@@ -16,6 +17,7 @@ import {
 } from './'
 
 const ReviewerReportAuthor = ({
+  journal,
   reviewFile,
   previewFile,
   downloadFile,
@@ -82,6 +84,31 @@ export default compose(
   })),
 )(ReviewerReportAuthor)
 
+ReviewerReportAuthor.propTypes = {
+  /** It's true when you want to appear the reviewer name */
+  showOwner: PropTypes.bool,
+  /** Reviewers reports */
+  report: PropTypes.shape({
+    id: PropTypes.string,
+    userId: PropTypes.string,
+    comments: PropTypes.arrayOf(PropTypes.object),
+    createdOn: PropTypes.number,
+    updatedOn: PropTypes.number,
+    submittedOn: PropTypes.number,
+    recommendation: PropTypes.string,
+    recommendationType: PropTypes.string,
+  }),
+  /** The reviewers recommendations */
+  journal: PropTypes.shape({
+    recommendations: PropTypes.arrayOf(PropTypes.object),
+  }),
+}
+
+ReviewerReportAuthor.defaultProps = {
+  showOwner: false,
+  report: undefined,
+  journal: { recommendation: [] },
+}
 // #region styles
 const Root = styled.div`
   background-color: ${th('colorBackgroundHue')};
-- 
GitLab