diff --git a/packages/component-faraday-ui/src/Logo.js b/packages/component-faraday-ui/src/Logo.js index 338312793bdfef4b08c3b3cdbe138e5591248392..ddc7b7b7a6ecefb1e4aa2f566d78e44efec512c5 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 17e9e176354403406b6066cf5b09f589a9a93cfa..f6647ffb98b45bb6f4590fb7ae69cbbdff7b4142 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 aea9f0e6cf26bc6bab8d474c0ae54b8ce88828ed..e8d9bccea15dc25845a5784894302f5b8613cbed 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 2078907f8e0187f8b20c8c9849460b204a2ce58b..c0f38b45a64d972d6c1118165ec1dce6098fa434 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 7d9ce203b0be1271292ab8bbdff4f35d4fbd3e7e..bca7e16d14205d77df66a82a8d41ed490821f4a1 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 7d257102a24dc7f39217f22b6c0529d800026247..66aa094b017b8811ed2bff8247660c4bc8c1a2da 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 12391694d8b8032f53d43932629ba1f4d20a12aa..6eb95dc54a3963eaa4257ed0e9ee566e3c154d36 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 4df5745b8ce86a109bad547466f3fe5ff57f94de..d1530006d9420da459d91e1d0d1174bfe4002030 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')};