diff --git a/packages/component-faraday-ui/src/Tabs.js b/packages/component-faraday-ui/src/Tabs.js index 76d0699c166690707ae38dc344f0cfa5f0833d44..a7d90025dcd5eb9ce1d48215b0da37319fe9dffa 100644 --- a/packages/component-faraday-ui/src/Tabs.js +++ b/packages/component-faraday-ui/src/Tabs.js @@ -4,12 +4,9 @@ const Tabs = ({ items, selectedTab, changeTab, children }) => children({ selectedTab, changeTab }) export default compose( - withStateHandlers( - { selectedTab: 0 }, - { - changeTab: () => selectedTab => ({ - selectedTab, - }), - }, - ), + withStateHandlers(({ selectedTab = 0 }) => ({ selectedTab }), { + changeTab: () => selectedTab => ({ + selectedTab, + }), + }), )(Tabs) diff --git a/packages/component-faraday-ui/src/contextualBoxes/HERecommendation.js b/packages/component-faraday-ui/src/contextualBoxes/HERecommendation.js index b6184d7fbde2515fdf7cc4808626b309129c2f21..e5143cfe49b9d9a77998fa1b3f9286355cb5d1d5 100644 --- a/packages/component-faraday-ui/src/contextualBoxes/HERecommendation.js +++ b/packages/component-faraday-ui/src/contextualBoxes/HERecommendation.js @@ -20,10 +20,30 @@ import { } from 'pubsweet-component-faraday-ui/src' const options = [ - { value: 'publish', label: 'Publish' }, - { value: 'reject', label: 'Reject' }, - { value: 'minor', label: 'Request Minor Revision' }, - { value: 'major', label: 'Request Major Revision' }, + { + value: 'publish', + label: 'Publish', + message: 'Recommend Manuscript for Publishing', + button: 'Submit Recommendation', + }, + { + value: 'reject', + label: 'Reject', + message: 'Recommend Manuscript for Rejection', + button: 'Submit Recommendation', + }, + { + value: 'minor', + label: 'Request Minor Revision', + message: 'Request Minor Revision', + button: 'Request Revision', + }, + { + value: 'major', + label: 'Request Major Revision', + message: 'Request Major Revision', + button: 'Request Revision', + }, ] const parseFormValues = ({ recommendation, ...rest }) => { @@ -68,17 +88,15 @@ const HERecommendation = ({ </ItemOverrideAlert> </Row> - {get(formValues, 'recommendation') === 'publish' || - get(formValues, 'recommendation') === 'reject' ? ( + {get(formValues, 'recommendation') === 'minor' || + get(formValues, 'recommendation') === 'major' ? ( <Row mt={2}> - <ItemOverrideAlert vertical> - <Label required>Message for Author</Label> - <ValidatedField - component={Textarea} - name="public" - validate={[required]} - /> - </ItemOverrideAlert> + <ResponsiveItem mr={1} vertical> + <Label> + Message for Author <Text secondary>Optional</Text> + </Label> + <ValidatedField component={Textarea} name="public" /> + </ResponsiveItem> </Row> ) : ( <ResponsiveRow mt={2}> @@ -100,7 +118,11 @@ const HERecommendation = ({ <Row justify="flex-end" mt={2}> <Button onClick={handleSubmit} primary size="medium"> - Submit recommendation + { + options.find( + o => o.value === get(formValues, 'recommendation', 'publish'), + ).button + } </Button> </Row> </Root> @@ -116,17 +138,31 @@ export default compose( withProps(({ formValues }) => ({ modalTitle: options.find( o => o.value === get(formValues, 'recommendation', 'publish'), - ).label, + ).message, + confirmMessage: options.find( + o => o.value === get(formValues, 'recommendation', 'publish'), + ).button, })), reduxForm({ form: 'HERecommendation', onSubmit: ( values, dispatch, - { onRecommendationSubmit, showModal, setFetching, modalTitle }, + { + onRecommendationSubmit, + showModal, + setFetching, + modalTitle, + confirmMessage, + }, ) => { showModal({ title: `${modalTitle}?`, + confirmText: + confirmMessage === 'Submit Recommendation' + ? 'Submit' + : confirmMessage, + onConfirm: props => { onRecommendationSubmit(parseFormValues(values), { ...props, diff --git a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js index 48126901139102f39cc8bee06828e9647fd50b10..d64a8a58c009bf3d77b62b2f5e2367b371d389c9 100644 --- a/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js +++ b/packages/component-faraday-ui/src/contextualBoxes/ReviewerDetails.js @@ -21,7 +21,7 @@ import { const ReviewerDetails = ({ journal, - reports, + reports = [], fragment, invitations, previewFile, @@ -47,7 +47,7 @@ const ReviewerDetails = ({ toggle={toggle} {...rest} > - <Tabs> + <Tabs selectedTab={reports.length ? 1 : 0}> {({ selectedTab, changeTab }) => ( <Fragment> <TabsHeader> diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index ae00e1870d9123677b1c80e2e771009c7a5b4e8b..ba4b2e5c23a12392e88506a39a423219cead36da 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -184,15 +184,17 @@ const ManuscriptLayout = ({ /> )} - {get(currentUser, 'permissions.canMakeHERecommendation', false) && ( - <HERecommendation - formValues={get(formValues, 'editorialRecommendation', {})} - hasReviewerReports={reviewerRecommendations.length > 0} - highlight={reviewerRecommendations.length > 0} - modalKey="heRecommendation" - onRecommendationSubmit={onEditorialRecommendation} - /> - )} + {get(currentUser, 'permissions.canMakeHERecommendation', false) && + (!invitationsWithReviewers.length || + reviewerRecommendations.length > 0) && ( + <HERecommendation + formValues={get(formValues, 'editorialRecommendation', {})} + hasReviewerReports={reviewerRecommendations.length > 0} + highlight={reviewerRecommendations.length > 0} + modalKey="heRecommendation" + onRecommendationSubmit={onEditorialRecommendation} + /> + )} {get(currentUser, 'permissions.canMakeDecision', false) && ( <ManuscriptEicDecision diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index aaac6b3b8f9c64f2abf4268d36b278dd647aa080..7436b922ec943bf0d891b1c19b24a3c17d6e1750 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -170,9 +170,7 @@ export default compose( eicDecision: getFormValues('eic-decision')(state), reviewerReport: getFormValues('reviewerReport')(state), responseToInvitation: getFormValues('answer-invitation')(state), - editorialRecommendation: getFormValues('editorialRecommendation')( - state, - ), + editorialRecommendation: getFormValues('HERecommendation')(state), }, invitationsWithReviewers: getInvitationsWithReviewersForFragment( state, diff --git a/packages/hindawi-theme/src/elements/Checkbox.js b/packages/hindawi-theme/src/elements/Checkbox.js index 566e93a154084867ae268a80b905cc78891f5aa4..528abbf99fd1a0c02c068ca07dbdda5ccea7e24f 100644 --- a/packages/hindawi-theme/src/elements/Checkbox.js +++ b/packages/hindawi-theme/src/elements/Checkbox.js @@ -22,6 +22,7 @@ const Checkbox = css` background: url('data:image/svg+xml;utf8,${encodeURIComponent( checkIcon, )}') center no-repeat, ${th('colorPrimary')}; + background-size: contain; } ` @@ -32,6 +33,7 @@ Checkbox.Input = css` ` Checkbox.Label = css` + font-weight: 600; &::before { content: ' '; background: transparent; @@ -40,10 +42,10 @@ Checkbox.Label = css` box-sizing: border-box; display: inline-block; margin-right: ${th('gridUnit')}; - vertical-align: middle; + vertical-align: text-bottom; - height: calc(${th('gridUnit')} * 3); - width: calc(${th('gridUnit')} * 3); + height: calc(${th('gridUnit')} * 2); + width: calc(${th('gridUnit')} * 2); } ` diff --git a/packages/hindawi-theme/src/elements/Radio.js b/packages/hindawi-theme/src/elements/Radio.js index 124dbf44596a4ac8aa6cd35ea9ba63a2b1f429a2..2dfb3ec071b1c2d1759b59d7e334be917cddad52 100644 --- a/packages/hindawi-theme/src/elements/Radio.js +++ b/packages/hindawi-theme/src/elements/Radio.js @@ -13,14 +13,14 @@ export default { &::before { display: none; } - + input:checked + span::before { border-color: ${th('colorPrimary')}; background: url('data:image/svg+xml;utf8,${encodeURIComponent( checkIcon, )}') center no-repeat; } - `, + `, Input: css` opacity: 0; margin-left: calc(${th('gridUnit')} * -2); @@ -35,9 +35,10 @@ export default { background: transparent; border: 1px solid #939393; border-radius: 50%; - display: inline-block; + display: inline-flex; margin-right: ${th('gridUnit')}; - vertical-align: middle; + vertical-align: text-bottom; + align-items: center; height: calc(${th('gridUnit')} * 2); width: calc(${th('gridUnit')} * 2); diff --git a/packages/hindawi-theme/src/index.js b/packages/hindawi-theme/src/index.js index d63931498ffdcf1b4a5d451b0b3fb5d1fd56e41e..09be373c770356d258fedd31dc9f3cbd3f582631 100644 --- a/packages/hindawi-theme/src/index.js +++ b/packages/hindawi-theme/src/index.js @@ -158,7 +158,7 @@ const hindawiTheme = { lineHeightHeading1: '37px', lineHeightHeading2: '29px', - lineHeightHeading3: '19px', + lineHeightHeading3: '20px', lineHeightHeading4: '18px', lineHeightHeading5: '18px', lineHeightHeading6: '18px',