diff --git a/packages/components-faraday/src/components/Dashboard/ReviewerForm.js b/packages/components-faraday/src/components/Dashboard/ReviewerForm.js index b265779c4f24734c82e398692fe0d5b605c9c9fb..6912fb9f2969d20801899d0031c205b029ef4d8a 100644 --- a/packages/components-faraday/src/components/Dashboard/ReviewerForm.js +++ b/packages/components-faraday/src/components/Dashboard/ReviewerForm.js @@ -1,12 +1,13 @@ import React from 'react' import { connect } from 'react-redux' import styled from 'styled-components' -import { reduxForm, change as changeForm, initialize } from 'redux-form' import { th, Button } from '@pubsweet/ui' import { compose, withHandlers } from 'recompose' +import { reduxForm, change as changeForm, initialize } from 'redux-form' import { ReviewersSelect } from './' import { ValidatedTextField } from '../AuthorList/FormItems' +import { inviteReviewer } from '../../redux/reviewers' // const emailRegex = new RegExp( // /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i, //eslint-disable-line @@ -15,7 +16,7 @@ import { ValidatedTextField } from '../AuthorList/FormItems' // const emailValidator = value => // emailRegex.test(value) ? undefined : 'Invalid email' -const ReviewerForm = ({ clearForm, selectReviewer }) => ( +const ReviewerForm = ({ clearForm, selectReviewer, handleSubmit }) => ( <Root> <Row> <ReviewersSelect onSelect={selectReviewer} /> @@ -27,7 +28,7 @@ const ReviewerForm = ({ clearForm, selectReviewer }) => ( </Row> <ButtonsContainer> <FormButton onClick={clearForm}>Clear</FormButton> - <FormButton disabled primary> + <FormButton onClick={handleSubmit} primary> Send </FormButton> </ButtonsContainer> @@ -35,9 +36,10 @@ const ReviewerForm = ({ clearForm, selectReviewer }) => ( ) export default compose( - connect(null, { changeForm, initialize }), + connect(null, { changeForm, initialize, inviteReviewer }), reduxForm({ form: 'inviteReviewer', + onSubmit: (values, dispatch, { inviteReviewer }) => {}, }), withHandlers({ selectReviewer: ({ changeForm, initialize }) => reviewer => () => { diff --git a/packages/components-faraday/src/redux/reviewers.js b/packages/components-faraday/src/redux/reviewers.js new file mode 100644 index 0000000000000000000000000000000000000000..153f73774ca3d0a6e48b952fc2d2ad21a2392dc2 --- /dev/null +++ b/packages/components-faraday/src/redux/reviewers.js @@ -0,0 +1,19 @@ +import { create } from 'pubsweet-client/src/helpers/api' + +const initialState = { + fetching: false, +} + +export const inviteReviewer = (email, collectionId) => dispatch => { + create(`collections/${collectionId}/invitation`, { + email, + role: 'reviewer', + }) +} + +export default (state = initialState, action = {}) => { + switch (action.type) { + default: + return state + } +}