From e03e7882483ba8da17846d836bf96dbfdd36f9e9 Mon Sep 17 00:00:00 2001 From: h-mihail <33.mihail@gmail.com> Date: Tue, 2 Oct 2018 15:36:57 +0300 Subject: [PATCH] feat(PublonTable):front-end --- .../component-faraday-ui/src/PublonsTable.js | 66 +++++++++---------- .../component-faraday-ui/src/PublonsTable.md | 12 +++- .../src/helpers/withFetching.js | 6 +- 3 files changed, 44 insertions(+), 40 deletions(-) diff --git a/packages/component-faraday-ui/src/PublonsTable.js b/packages/component-faraday-ui/src/PublonsTable.js index 8935b00f6..073719bc4 100644 --- a/packages/component-faraday-ui/src/PublonsTable.js +++ b/packages/component-faraday-ui/src/PublonsTable.js @@ -1,18 +1,17 @@ import React from 'react' import styled from 'styled-components' import { th } from '@pubsweet/ui-toolkit' -import { DateParser, Button } from '@pubsweet/ui' -import { get, isEqual, orderBy } from 'lodash' -import { compose, shouldUpdate, withHandlers, withProps } from 'recompose' +import { Button } from '@pubsweet/ui' +import { get } from 'lodash' +import { compose, withHandlers } from 'recompose' -import { Label, PersonInvitation, Text } from '../' +import { Label, Text, OpenModal, withFetching } from '../' const PublonsTable = ({ reviewers, onInviteReviewer, - renderAcceptedLabel, - onResendReviewerInvite, - onRevokeReviewerInvite, + setFetching, + isFetching, }) => reviewers.length > 0 && ( <Table> @@ -41,9 +40,19 @@ const PublonsTable = ({ </td> <td>{`${get(reviewer, 'numVerifiedReviews', '')}`}</td> <HiddenCell> - <Button secondary size="small" onClick={onInviteReviewer}> - SEND - </Button> + <OpenModal + isFetching={isFetching} + onConfirm={modalProps => onInviteReviewer(reviewer, modalProps)} + setFetching={setFetching} + subtitle={reviewer.email} + title="Send invitation to review?" + > + {showModal => ( + <Button onClick={showModal} secondary size="small"> + SEND + </Button> + )} + </OpenModal> </HiddenCell> </TableRow> ))} @@ -51,18 +60,21 @@ const PublonsTable = ({ </Table> ) -export default withHandlers({ - onInviteReviewer: props => reviewer => { - console.log(reviewer) - }, -})(PublonsTable) +export default compose( + withFetching, + withHandlers({ + onInviteReviewer: ({ onInviteReviwer }) => (reviewer, modalProps) => { + onInviteReviwer(reviewer, modalProps) + }, + }), +)(PublonsTable) // #region styles const Table = styled.table` border-collapse: collapse; & thead { - border-bottom: 1px solid ${th('colorBorder')}; + border: 1px solid ${th('colorBorder')}; background-color: ${th('colorBackgroundHue2')}; } @@ -88,34 +100,16 @@ const HidableCell = styled.td` padding-top: ${th('gridUnit')}; ` -const CustomCell = styled.td` - &:hover { - ${Button} { - display: block; - } - ${Text} { - display: none; - } - } - - ${Button} { - display: none; - } - ${Text} { - display: inline-block; - } -` - const TableRow = styled.tr` background-color: ${th('colorBackgroundHue2')}; border-bottom: 1px solid ${th('colorBorder')}; & td:first-child { - min-width: calc(${th('gridUnit')} * 30); + min: calc(${th('gridUnit')} * 30); } &:hover { - background-color: ${th('colorBackgroundHue3')}; + background: ${th('colorBackgroundHue3')}; ${HiddenCell} { opacity: 1; diff --git a/packages/component-faraday-ui/src/PublonsTable.md b/packages/component-faraday-ui/src/PublonsTable.md index e750a53be..dea96012d 100644 --- a/packages/component-faraday-ui/src/PublonsTable.md +++ b/packages/component-faraday-ui/src/PublonsTable.md @@ -3,6 +3,8 @@ A list of publon reviewers. ```js const reviewers = [ { + id: 0, + email: 'asd@asddsda.com', publishingName: 'Vlad Corduneanu', recentOrganizations: { name: 'Facultatea Tehnica Iasi' @@ -10,6 +12,8 @@ const reviewers = [ numVerifiedReviews: '123' }, { + id: 2, + email: 'asd@asddsda.com', publishingName: 'Dani Mocanu', recentOrganizations: { name: 'UAIC' @@ -17,6 +21,8 @@ const reviewers = [ numVerifiedReviews: '222' }, { + id: 3, + email: 'asd@asddsda.com', publishingName: 'Gica Hagi', recentOrganizations: { name: 'Pixar' @@ -25,5 +31,9 @@ const reviewers = [ }, ]; -<PublonsTable reviewers={reviewers}/> +<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/helpers/withFetching.js b/packages/component-faraday-ui/src/helpers/withFetching.js index 717a5f95b..753c265e6 100644 --- a/packages/component-faraday-ui/src/helpers/withFetching.js +++ b/packages/component-faraday-ui/src/helpers/withFetching.js @@ -2,12 +2,12 @@ import { withStateHandlers } from 'recompose' export default withStateHandlers( { - isFetchingg: false, + isFetching: false, fetchingError: '', }, { - setFetching: ({ isFetchingg }) => value => ({ - isFetchingg: value, + setFetching: ({ isFetching }) => value => ({ + isFetching: value, }), toggleFetching: ({ isFetching }) => () => ({ isFetching: !isFetching, -- GitLab